Docker部署Apache Tomcat

注:ubuntu下docker安装可以参考http://blog.****.net/john1337/article/details/70855293

1.运行tomcat

使用docker search可以查到最流行的(和官方的)Docker Tomcat容器:
$ sudo docker search tomcat
[sudo] password for craig: 
NAME                                  DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
tomcat                                Apache Tomcat is an open source implementa...   103       [OK]       
tutum/tomcat                          Tomcat image - listens in port 8080. For t...   38                   [OK]
consol/tomcat-7.0                     Tomcat 7.0.57, 8080, "admin/admin"              12                   [OK]
consol/tomcat-8.0                     Tomcat 8.0.15, 8080, "admin/admin"              9                    [OK]
consol/tomcat-6.0                     Tomcat 6.0.43, 8080, "admin/admin"              6                    [OK]
consol/tomcat-4.1                     Tomcat 4.1.40, 8080, "admin/admin"              4                    [OK]
consol/tomcat-5.0                     Tomcat 5.0.30,  8080, "admin/admin"             4                    [OK]
consol/tomcat-5.5                     Tomcat 5.5.36, 8080, "admin/admin"              4                    [OK]
consol/tomcat-3.3                     Tomcat 3.3.2, 8080, "admin/admin"               4                    [OK]
readytalk/tomcat-native               Debian backed Tomcat + Tomcat Native Library    3                    [OK]
malderhout/tomcat                     Tomcat7 with OpenJDK7 on CentOS7                3                    [OK]
dordoka/tomcat                        Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 ba...   3                    [OK]
meirwa/spring-boot-tomcat-mysql-app   a sample spring-boot app using tomcat and ...   2                    [OK]
h2000/docker-tomcat-youtrack          Dockerfile for youtrack to run under tomcat.    1                    [OK]
nicescale/tomcat                      Tomcat service for NiceScale. http://nices...   1                    [OK]
dmean/liferay-tomcat                  Debian + Liferay CE Tomcat                      1                    [OK]
atomi/tomcat                                                                          0                    [OK]
mminke/apache-tomcat                  A Docker image which contains the Apache T...   0                    [OK]
ericogr/tomcat                        Tomcat 8.0.21, 8080, "docker/docker"            0                    [OK]
holmes/tomcat                                                                         0                    [OK]
paulkling/tomcat                                                                      0                    [OK]
dynamind/tomcat                                                                       0                    [OK]
fabric8/tomcat-8.0                    runs Apache Tomcat 8.0 with jolokia enable...   0                    [OK]
learninglayers/tomcat                                                                 0                    [OK]
dmglab/tomcat                         CentOS 7 based tomcat installation              0                    [OK]

官方网站描述了所支持的标签:
Docker部署Apache Tomcat

我正在用的是版本7,所以选择了tomcat:7

1.下载tomcat docker镜像:

docker pull tomcat:7

2.运行Tomcat:

$ sudo docker run -p 8080:8080 tomcat:7

如果还需要从这个镜像启动容器,只需要:

$ sudo docker run -p 8081:8080 tomcat:7

这样就可以通过http://ip:8080或者http://ip:8081访问tomcat


3.测试tomcat已经启动:

Docker部署Apache Tomcat


查看镜像历史:
$ sudo docker history tomcat:7
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
8775d4e95717        22 hours ago        /bin/sh -c #(nop)  CMD ["catalina.sh" "run"]    0B                  
<missing>           22 hours ago        /bin/sh -c #(nop)  EXPOSE 8080/tcp              0B                  
<missing>           22 hours ago        /bin/sh -c set -e  && nativeLines="$(catal...   0B                  
<missing>           22 hours ago        /bin/sh -c set -x   && wget -O tomcat.tar....   16.8MB              
<missing>           22 hours ago        /bin/sh -c #(nop)  ENV TOMCAT_ASC_URL=http...   0B                  
<missing>           22 hours ago        /bin/sh -c #(nop)  ENV TOMCAT_TGZ_URL=http...   0B                  
<missing>           22 hours ago        /bin/sh -c #(nop)  ENV TOMCAT_VERSION=7.0.77    0B                  
<missing>           22 hours ago        /bin/sh -c #(nop)  ENV TOMCAT_MAJOR=7           0B                  
<missing>           22 hours ago        /bin/sh -c set -ex;  for key in $GPG_KEYS;...   128kB               
<missing>           22 hours ago        /bin/sh -c #(nop)  ENV GPG_KEYS=05AB331109...   0B                  
<missing>           22 hours ago        /bin/sh -c apt-get update && apt-get insta...   7.66MB              
<missing>           22 hours ago        /bin/sh -c {   echo 'deb http://deb.debian...   164B                
<missing>           22 hours ago        /bin/sh -c #(nop)  ENV OPENSSL_VERSION=1.1...   0B                  
<missing>           22 hours ago        /bin/sh -c #(nop)  ENV LD_LIBRARY_PATH=/us...   0B                  
<missing>           22 hours ago        /bin/sh -c #(nop)  ENV TOMCAT_NATIVE_LIBDI...   0B                  
<missing>           22 hours ago        /bin/sh -c #(nop) WORKDIR /usr/local/tomcat     0B                  
<missing>           22 hours ago        /bin/sh -c mkdir -p "$CATALINA_HOME"            0B                  
<missing>           22 hours ago        /bin/sh -c #(nop)  ENV PATH=/usr/local/tom...   0B                  
<missing>           22 hours ago        /bin/sh -c #(nop)  ENV CATALINA_HOME=/usr/...   0B                  
<missing>           27 hours ago        /bin/sh -c set -ex;   apt-get update;  apt...   163MB               
<missing>           3 days ago          /bin/sh -c #(nop)  ENV JAVA_DEBIAN_VERSION...   0B                  
<missing>           3 days ago          /bin/sh -c #(nop)  ENV JAVA_VERSION=7u121       0B                  
<missing>           3 days ago          /bin/sh -c #(nop)  ENV JAVA_HOME=/usr/lib/...   0B                  
<missing>           3 days ago          /bin/sh -c {   echo '#!/bin/sh';   echo 's...   87B                 
<missing>           3 days ago          /bin/sh -c #(nop)  ENV LANG=C.UTF-8             0B                  
<missing>           3 days ago          /bin/sh -c apt-get update && apt-get insta...   1.18MB              
<missing>           3 days ago          /bin/sh -c apt-get update && apt-get insta...   44.6MB              
<missing>           3 days ago          /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B                  
<missing>           3 days ago          /bin/sh -c #(nop) ADD file:712c48086043553...   123MB 

2.停止Tomcat容器

1.查看docker下容器:
docker ps -a

CONTAINER ID        IMAGE                      COMMAND                CREATED             STATUS                           PORTS                         NAMES
24be06cb7d0e        tomcat:7                   "catalina.sh run"      27 minutes ago      Up 27 minutes                    0.0.0.0:8080->8080/tcp        priceless_newton
1d6a0d735bbc        tomcat:7                   "-d"                   27 minutes ago      Created                                                        quizzical_meitner
f2bb28a83e11        tomcat:7                   "catalina.sh run"      32 minutes ago      Exited (130) 27 minutes ago                                    lucid_bhaskara
44ccbb02b4c6        tomcat:7                   "-p 8080:8080"         35 minutes ago      Created                                                        gallant_hermann
ba83fe38de9b        hello-world                "/hello"               37 minutes ago      Exited (0) 37 minutes ago                                      pedantic_montalcini
f00ffb54d7c6        tomcat:7                   "-p 8080"              38 minutes ago      Created                                                        thirsty_wing
748c03e8f738        tomcat:7                   "catalina.sh run"      17 hours ago        Exited (255) About an hour ago   0.0.0.0:8080->8080/tcp        thirsty_joliot
2f04e1487bac        hello-world                "/hello"               17 hours ago        Exited (0) 17 hours ago                                        frosty_varahamihira
b3be8db48d46        hello-world                "/hello"               17 hours ago        Exited (0) 17 hours ago                                        stupefied_kowalevski
a629b09c98d1        hello-world                "/hello"               17 hours ago        Exited (0) 17 hours ago                                        boring_yonath
aa2d384e745f        tomcat:7                   "catalina.sh run"      17 hours ago        Exited (130) 17 hours ago                                      trusting_hugle
09a655b0d262        percona/pmm-server:1.1.3   "/opt/entrypoint.sh"   19 hours ago        Up About an hour                 0.0.0.0:80->80/tcp, 443/tcp   pmm-server
5424c8280a8d        percona/pmm-server:1.1.3   "/bin/true"            19 hours ago        Created                                                        pmm-data
2.停止tomcat:7对应容器:
docker stop 24be06cb7d0e

3.删除tomcat对应容器

1.删除之前需要先停止,否则会出错:
docker rm 24be06cb7d0e

4.移除镜像

1.获取镜像,执行命令:
docker images

REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
tomcat               7                   8775d4e95717        22 hours ago        357MB
percona/pmm-server   1.1.3               2dec09be0f82        7 days ago          1.15GB
hello-world          latest              48b5124b2768        3 months ago        1.84kB

2.删除镜像,执行命令:
docker rmi 8775d4e95717

参考文章:

1.http://dockone.io/article/285