Docker 学习之旅(六):使用 Docker 搭建 Java Web 运行环境
学习 Docker 在一开始肯定不是去学习它的理论(至少对大部分人而言),而是学习它的使用方法进而去使用。大概搭建好了 Docker 的环境,也尝试了创建自己的 Docker 镜像,现在就可以尝试一些比较实用的东西,比如使用 Docker 来搭建 Java Web 运行环境。
寻找镜像
既然官方的镜像那么多,那么我们为什么不先去看一下官方镜像呢?打开 Docker Hub 一搜索 tomcat,排在第一个的就是。
地址:https://hub.docker.com/_/tomcat/
这边选择 tomcat7 + jre7,但是通过查看构建所使用的 Dockfile
文件发现,tomcat 的官方源采用的是 jre7 是 openJDK7 的 jre,这里需要注意。
下载运行 tomcat
tomcat 的默认启动参数为 CMD ["catalina.sh", "run"]
,启动方式为:
docker run -it --rm tomcat:7.0
使用 http://container-ip:8080
在浏览器访问。
或者将端口映射到本地,运行:
$ docker run -it --rm -p 8888:8080 tomcat:7.0
然后使用 http://localhost:8888
或是 http://host-ip:8888
访问。
部署 Java Web 项目
文档上已经说明,对于 tomcat 7 ,tomcat 所在目录为 /usr/local/tomcat
,所以对其进行修改完成部署。
复制文件
先使用如下命令启动容器:
$ docker run -it -v /home/ubuntu/tomcat:/mnt/war tomcat:7.0 /bin/bash
此处相关参数包括:
-i
:表示以“交互模式”运行容器-t
:表示容器启动后会进入其命令行-v
:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
即运行后进入容器命令行,并将主机的 /home/ubuntu/tomcat
挂载到了容器的 /mnt/war
目录。
然后将部署文件拷贝到主机的 /home/ubuntu/tomcat
目录并继续在容器中操作部署程序。
1 | # cd webapps/ROOT/ |
创建镜像
此处需要记住刚才所运行容器的 ID,bash 里面 root@0b2d4744734c
的 ‘root@’ 后面的便是容器 ID。如果已经找不到,可使用 docker ps -a
查看之前所运行过的所有容器。
然后创建镜像。
$ docker commit 0b2d4744734c timerever/javaweb:1.0
运行镜像
使用刚刚自定的名称运行镜像。
docker run -it --rm -p 8888:8080 timerever/javaweb:1.0 catalina.sh run