docker【7】docker运行简单的应用程序(tomcat)以及怎么把宿主机的文件copy到容器

一、简单的docker hub自带的tomcat镜像安装

1、先搜索tomcat,找出自己准备使用的tomcat

 
 
  1. lin@ubuntu:~$ docker search tomcat
  2. NAME                                        DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
  3. tomcat                                      Apache Tomcat is an open source implementa...   391       [OK]      
  4. consol/tomcat-7.0                           Tomcat 7.0.57, 8080, "admin/admin"              14                   [OK]
  5. consol/tomcat-8.0                           Tomcat 8.0.15, 8080, "admin/admin"              12                   [OK]
  6. dordoka/tomcat                              Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 ba...   10                   [OK]
  7. consol/tomcat-6.0                           Tomcat 6.0.43, 8080, "admin/admin"              6                    [OK]
  8. consol/tomcat-5.5                           Tomcat 5.5.36, 8080, "admin/admin"              4                    [OK]

选择自己需要版本的tomcat

可以在docker hub里面看到tomcat支持的版本,我们可以选择一下合适的版本

官网给出的版本如下:

Supported tags and respective Dockerfile links

后面的超链接点击进去是可以看到Dockerfile的

比如7-jre的dockerfile

 
 
  1. FROM java:7-jre
  2. ENV CATALINA_HOME /usr/local/tomcat
  3. ENV PATH $CATALINA_HOME/bin:$PATH
  4. RUN mkdir -p "$CATALINA_HOME"
  5. WORKDIR $CATALINA_HOME
  6. # see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
  7. RUN gpg --keyserver pool.sks-keyservers.net --recv-keys \
  8. 05AB33110949707C93A279E3D3EFE6B686867BA6 \
  9. 07E48665A34DCAFAE522E5E6266191C37C037D42 \
  10. 47309207D818FFD8DCD3F83F1931D684307A10A5 \
  11. 541FBE7D8F78B25E055DDEE13C370389288584E7 \
  12. 61B832AC2F1C5A90F0F9B00A1C506407564C17A3 \
  13. 713DA88BE50911535FE716F5208B0AB1D63011C7 \
  14. 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED \
  15. 9BA44C2621385CB966EBA586F72C284D731FABEE \
  16. A27677289986DB50844682F8ACB77FC2E86E29AC \
  17. A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 \
  18. DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 \
  19. F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE \
  20. F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
  21. ENV TOMCAT_MAJOR 7
  22. ENV TOMCAT_VERSION 7.0.67
  23. ENV TOMCAT_TGZ_URL https://www.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz
  24. RUN set -x \
  25. && curl -fSL "$TOMCAT_TGZ_URL" -o tomcat.tar.gz \
  26. && curl -fSL "$TOMCAT_TGZ_URL.asc" -o tomcat.tar.gz.asc \
  27. && gpg --verify tomcat.tar.gz.asc \
  28. && tar -xvf tomcat.tar.gz --strip-components=1 \
  29. && rm bin/*.bat \
  30. && rm tomcat.tar.gz*
  31. EXPOSE 8080
  32. CMD ["catalina.sh", "run"]
当然这些dockerfile是官网写好的,不需要咱们自己手动写,只用pull就可以 也就是下一步的安装镜像

2、选择tomcat版本,安装镜像

 
 
  1. lin@ubuntu:~$ docker run  -d -p 80:8080 consol/tomcat-7.0
  2. 06523ad3ae22194e08483acc3c3edb3699ea5d1b2296827dce048daf3efdf528

3、访问宿主机80端口  我的宿主机的IP是167

 
 
  1. http://192.168.0.167:80

正常访问tomcat证明部署成功~

4、挂载自己的web项目

 
 
  1. lin@ubuntu:~$  docker run -d -p 8080:8080 --name rzdb -v /home/lin/docker:/opt/tomcat/webapps  consol/tomcat-7.0
  2. 7c6d38e37117f0779afa29924042715a3d1feef1324b502b92a217a15482385e

这时候进入容器就可以看到挂载的项目:

 
 
  1. root@7c6d38e37117:/# cd /opt/tomcat
  2. root@7c6d38e37117:/opt/tomcat# cd webapps/
  3. root@7c6d38e37117:/opt/tomcat/webapps# cd rzdb
  4. root@7c6d38e37117:/opt/tomcat/webapps/rzdb# ls
  5. 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

 
 
  1. lin@ubuntu:~$ docker ps
  2. CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                            NAMES
  3. 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

 
 
  1. lin@ubuntu:~$ docker inspect -f   '{{.Id}}' 224adb2c2a8c
  2. 224adb2c2a8c6a23e81f6a806051005bacec4ed3ee9ece18bc1e041bbddac635
  • 宿主机往容器拷贝文件

 
 
  1. lin@ubuntu:~$ sudo cp docker/lin.log /var/lib/docker/aufs/mnt/224adb2c2a8c6a23e81f6a806051005bacec4ed3ee9ece18bc1e041bbddac635

文件会拷贝到根目录root下

注意:本实验我这里没有成功,没有找到copy的文件;

  • 使用挂载

 
 
  1. lin@ubuntu:~$  docker run -d -p 8080:8080 --name rzdb -v /home/lin/docker:/opt/tomcat/webapps  consol/tomcat-7.0
  2. 7c6d38e37117f0779afa29924042715a3d1feef1324b502b92a217a15482385e

这时候进入容器就可以看到挂载的项目:

 
 
  1. root@7c6d38e37117:/# cd /opt/tomcat
  2. root@7c6d38e37117:/opt/tomcat# cd webapps/
  3. root@7c6d38e37117:/opt/tomcat/webapps# cd rzdb
  4. root@7c6d38e37117:/opt/tomcat/webapps/rzdb# ls
  5. 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

 
 
  1. lin@ubuntu:/home/home$ sudo docker cp 224adb2c2a8c:/home  /home/lin
  2. lin@ubuntu:/home/home$ cd
  3. lin@ubuntu:~$ ls
  4. 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、访问


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值