一、简单的docker hub自带的tomcat镜像安装
1、先搜索tomcat,找出自己准备使用的tomcat
lin@ubuntu:~$ docker search tomcat
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
tomcat Apache Tomcat is an open source implementa... 391 [OK]
consol/tomcat-7.0 Tomcat 7.0.57, 8080, "admin/admin" 14 [OK]
consol/tomcat-8.0 Tomcat 8.0.15, 8080, "admin/admin" 12 [OK]
dordoka/tomcat Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 ba... 10 [OK]
consol/tomcat-6.0 Tomcat 6.0.43, 8080, "admin/admin" 6 [OK]
consol/tomcat-5.5 Tomcat 5.5.36, 8080, "admin/admin" 4 [OK]
选择自己需要版本的tomcat
可以在docker hub里面看到tomcat支持的版本,我们可以选择一下合适的版本
官网给出的版本如下:
Supported tags and respective Dockerfile
links
6.0.44-jre7
,6.0-jre7
,6-jre7
,6.0.44
,6.0
,6
(6-jre7/Dockerfile)6.0.44-jre8
,6.0-jre8
,6-jre8
(6-jre8/Dockerfile)7.0.67-jre7
,7.0-jre7
,7-jre7
,7.0.67
,7.0
,7
(7-jre7/Dockerfile)7.0.67-jre8
,7.0-jre8
,7-jre8
(7-jre8/Dockerfile)8.0.30-jre7
,8.0-jre7
,8-jre7
,jre7
,8.0.30
,8.0
,8
,latest
(8-jre7/Dockerfile)8.0.30-jre8
,8.0-jre8
,8-jre8
,jre8
(8-jre8/Dockerfile)
后面的超链接点击进去是可以看到Dockerfile的
比如7-jre的dockerfile
当然这些dockerfile是官网写好的,不需要咱们自己手动写,只用pull就可以 也就是下一步的安装镜像
FROM java:7-jre
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
WORKDIR $CATALINA_HOME
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
RUN gpg --keyserver pool.sks-keyservers.net --recv-keys \
05AB33110949707C93A279E3D3EFE6B686867BA6 \
07E48665A34DCAFAE522E5E6266191C37C037D42 \
47309207D818FFD8DCD3F83F1931D684307A10A5 \
541FBE7D8F78B25E055DDEE13C370389288584E7 \
61B832AC2F1C5A90F0F9B00A1C506407564C17A3 \
713DA88BE50911535FE716F5208B0AB1D63011C7 \
79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED \
9BA44C2621385CB966EBA586F72C284D731FABEE \
A27677289986DB50844682F8ACB77FC2E86E29AC \
A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 \
DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 \
F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE \
F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
ENV TOMCAT_MAJOR 7
ENV TOMCAT_VERSION 7.0.67
ENV TOMCAT_TGZ_URL https://www.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz
RUN set -x \
&& curl -fSL "$TOMCAT_TGZ_URL" -o tomcat.tar.gz \
&& curl -fSL "$TOMCAT_TGZ_URL.asc" -o tomcat.tar.gz.asc \
&& gpg --verify tomcat.tar.gz.asc \
&& tar -xvf tomcat.tar.gz --strip-components=1 \
&& rm bin/*.bat \
&& rm tomcat.tar.gz*
EXPOSE 8080
CMD ["catalina.sh", "run"]
2、选择tomcat版本,安装镜像
lin@ubuntu:~$ docker run -d -p 80:8080 consol/tomcat-7.0
06523ad3ae22194e08483acc3c3edb3699ea5d1b2296827dce048daf3efdf528
3、访问宿主机80端口 我的宿主机的IP是167
http://192.168.0.167:80
正常访问tomcat证明部署成功~
4、挂载自己的web项目
lin@ubuntu:~$ docker run -d -p 8080:8080 --name rzdb -v /home/lin/docker:/opt/tomcat/webapps consol/tomcat-7.0
7c6d38e37117f0779afa29924042715a3d1feef1324b502b92a217a15482385e
这时候进入容器就可以看到挂载的项目:
root@7c6d38e37117:/# cd /opt/tomcat
root@7c6d38e37117:/opt/tomcat# cd webapps/
root@7c6d38e37117:/opt/tomcat/webapps# cd rzdb
root@7c6d38e37117:/opt/tomcat/webapps/rzdb# ls
400.jsp 404.jsp 500.jsp META-INF WEB-INF common css images img index.html index.jsp js myjs newcss resource session.jsp
这个映射的是8080,访问宿主机的8080就可以看到项目已经启动
附加:这时候会有人疑问,那我想把自己的项目部署到tomcat该怎么做呢,这里大概介绍一下怎么吧宿主机上的文件挂在到容器里:
-
先查看运行容器的id
lin@ubuntu:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
224adb2c2a8c consol/tomcat-7.0 "/bin/sh -c /opt/tomc" 29 minutes ago Up 29 minutes 8778/tcp, 0.0.0.0:80->8080/tcp tender_elion
-
查看当初创建容器时候返回的一串ID也就是整个容器的ID
lin@ubuntu:~$ docker inspect -f '{{.Id}}' 224adb2c2a8c
224adb2c2a8c6a23e81f6a806051005bacec4ed3ee9ece18bc1e041bbddac635
-
宿主机往容器拷贝文件
lin@ubuntu:~$ sudo cp docker/lin.log /var/lib/docker/aufs/mnt/224adb2c2a8c6a23e81f6a806051005bacec4ed3ee9ece18bc1e041bbddac635
文件会拷贝到根目录root下
注意:本实验我这里没有成功,没有找到copy的文件;
-
使用挂载
lin@ubuntu:~$ docker run -d -p 8080:8080 --name rzdb -v /home/lin/docker:/opt/tomcat/webapps consol/tomcat-7.0
7c6d38e37117f0779afa29924042715a3d1feef1324b502b92a217a15482385e
这时候进入容器就可以看到挂载的项目:
root@7c6d38e37117:/# cd /opt/tomcat
root@7c6d38e37117:/opt/tomcat# cd webapps/
root@7c6d38e37117:/opt/tomcat/webapps# cd rzdb
root@7c6d38e37117:/opt/tomcat/webapps/rzdb# ls
400.jsp 404.jsp 500.jsp META-INF WEB-INF common css images img index.html index.jsp js myjs newcss resource session.jsp
-
容器往宿主机拷贝其中 224adb2c2a8c 是容器ID
lin@ubuntu:/home/home$ sudo docker cp 224adb2c2a8c:/home /home/lin
lin@ubuntu:/home/home$ cd
lin@ubuntu:~$ ls
Desktop docker dockerfile Documents Downloads examples.desktop home Music Pictures Public Templates Videos
宿主机多了home的文件夹,拷贝成功~
二、自己编写Dockerfile,基于ubuntu14.04安装 tomcat和jdk运行程序
1、编写Dockerfile
2、build image
3、运行container
4、访问