dockerfile构建与部署tomcat
1. 创建dockerfile存放目录
1.1 创建目录
[root@docker ~]# mkdir -p /dockerfile
[root@docker ~]# cd /dockerfile/
[root@docker dockerfile]# mkdir -p tomcat
[root@docker dockerfile]# cd tomcat/
2. 创建tomcat dockerfile配置文件
2.1 创建文件
[root@docker nginx]# touch Dockerfile
2.2 下载地址
软件准备
JDK下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Tomcat下载:http://tomcat.apache.org/
以上是软件在的连接,可以参考
2.3 下载tomcat包
[root@docker tomcat]# wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.59/bin/apache-tomcat-8.5.59.tar.gz
3 编写文件dockerfile文件
[root@docker tomcat]# vim Dockerfile
[root@docker tomcat]# cat Dockerfile
# this docker file
# VERSION 1.0
# author: shichao
# email: shichao@scajy.cn
FROM centos:7
MAINTAINER shichao@scajy.cn
ENV VERSION=8.5.59
RUN yum install -y gcc gcc-c++ make gd-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel openssl-devel net-tools wget curl unzip iproute java-1.8.0-openjdk && yum clean all && rm -rf /var/cache/yum/*
ADD apache-tomcat-{{VERSION}}.tar.gz /usr/local
RUN mv /usr/local/apache-tomcat-{{VERSION}} /usr/local/tomcat &&
sed -i '1a JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"' /usr/local/tomcat/bin/catalina.sh &&
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV PATH /usr/local/tomcat/bin:$PATH
WORKDIR /usr/local/tomcat
EXPOSE 9000
CMD ["catalina.sh", "run"]
4. 构建tomcat
[root@docker tomcat]# docker build -t tomcat:v1 .
Sending build context to Docker daemon 10.44MB
Step 1/10 : FROM centos:7
---> 7e6257c9f8d8
Step 2/10 : MAINTAINER shichao@scajy.cn
---> Using cache
---> cd20399516af
Step 3/10 : ENV VERSION=8.5.59
---> Using cache
---> f1139ddeb314
Step 4/10 : RUN yum install -y gcc gcc-c++ make gd-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel openssl-devel net-tools wget curl unzip iproute java-1.8.0-openjdk && yum clean all && rm -rf /var/cache/yum/*
---> Using cache
---> 4b2596c60299
Step 5/10 : ADD apache-tomcat-${VERSION}.tar.gz /usr/local/
---> 00857d2da2e1
Step 6/10 : RUN mv /usr/local/apache-tomcat-${VERSION} /usr/local/tomcat && sed -i '1a JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"' /usr/local/tomcat/bin/catalina.sh && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
---> Running in d41a123c6e10
Removing intermediate container d41a123c6e10
---> 5df335cbd630
Step 7/10 : ENV PATH /usr/local/tomcat/bin:$PATH
---> Running in 2ceb7e5a592c
Removing intermediate container 2ceb7e5a592c
---> 991e8db1994c
Step 8/10 : WORKDIR /usr/local/tomcat
---> Running in 4fc92228cbe4
Removing intermediate container 4fc92228cbe4
---> be9f9bcd73cd
Step 9/10 : EXPOSE 9000
---> Running in 66cccb1627a7
Removing intermediate container 66cccb1627a7
---> 8c2ae8c3fb0a
Step 10/10 : CMD ["catalina.sh", "run"]
---> Running in b9c1f6fe0604
Removing intermediate container b9c1f6fe0604
---> ae7545acb7f4
Successfully built ae7545acb7f4
Successfully tagged tomcat:v1
5. 查看镜像,验证是否构建成功
[root@docker php]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat v1 ae7545acb7f4 21 minutes ago 545MB
nginx v1 33ef1623b1e8 29 hours ago 365MB
mysql 5.7 42cdba9f1b08 2 days ago 448MB
nginx nginx01 2fc3f55169e9 5 days ago 133MB
nginx latest 7e4d58f0e5f3 4 weeks ago 133MB
busybox latest 6858809bf669 5 weeks ago 1.23MB
centos 7 7e6257c9f8d8 2 months ago 203MB
centos latest 0d120b6ccaa8 2 months ago 215MB
6. 使用tomcat镜像,创建docker容器
[root@docker php]# docker run -d --name=tomcat --network=test -p8080:8080 tomcat:v1
84a078c1881295674cfb4c1c5258975481f2548885cb4c42d433b019f2d775ed
7. 验证tomcat容器是否正常运行
[root@docker php]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
84a078c18812 tomcat:v1 "catalina.sh run" About a minute ago Up About a minute 0.0.0.0:8080->8080/tcp, 9000/tcp tomcat
8. 浏览器访问验证
-
查看本机ip
[root@docker php]# ifconfig eth0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.200.126 netmask 255.255.255.0 broadcast 192.168.200.255 inet6 fe80::250:56ff:feb6:c59f prefixlen 64 scopeid 0x20<link> inet6 fd37:1f22:7906:0:250:56ff:feb6:c59f prefixlen 64 scopeid 0x0<global> ether 00:50:56:b6:c5:9f txqueuelen 1000 (Ethernet) RX packets 129647712 bytes 11515075121 (10.7 GiB) RX errors 0 dropped 366926 overruns 0 frame 0 TX packets 532831 bytes 48962356 (46.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
-
浏览器访问