1. 前言
如果只是想要一个tomcat环境,很简单,直接拉取一个tomcat镜像就可以了。
本文中,我们在centos7镜像的基础上,学习使用Dockerfile构建Tomcat镜像。同时会对比手工构建镜像和使用Dockerfile构建镜像的不同,以便更好地理解构建过程。
2. 手工构建镜像
2.1. 启动容器
假设我们的所有安装程序都放在了宿主机的/download目录下,现在需要将其挂载到容器的/mnt/software目录下。
1 | service docker start |
2.2. 安装jdk
1、进入容器环境。
2、可选操作,安装vim增强版。
1 | yum install vim-enhanced |
3、解压jdk到/usr/lib/jvm目录。
1 | cd /mnt/software |
4、配置JAVA_HOME和JRE_HOME,vi /etc/profile
,在最后添加:
1 | export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131 |
然后使配置文件生效
1 | source /etc/profile |
5、测试jdk是否配置成功
1 | java |
2.3. 安装tomcat
1、进入容器环境。
2、解压tomcat到/opt目录。
1 | cd /mnt/software |
3、启动tomcat。
1 | cd /opt/apache-tomcat-8.0.44/bin/ |
4、测试访问。
1 | yum install curl |
2.4. 编写启动脚本
1、进入根目录,新建run.sh文件。
1 | cd / |
2、编辑run.sh内容为:
1 |
|
3、更改run.sh权限
1 | chmod 777 run.sh |
2.5. 保存容器
保存容器为centos/tomcat镜像
1 | docker ps -l |
docker镜像的命名规则 registry_url/namespace/image_name:tag
默认tag是latest。
2.6. 使用镜像
1、启动镜像
1 | docker run -d -p 18080:8080 centos/tomcat /run.sh |
2、测试访问
1 | curl localhost:18080 |
3. 使用Dockerfile构建镜像
3.1. 编写dockerfile
1、准备Dockerfile和run.sh
内容可以参考hexo-storage/dockerfile-tomcat
2、下载 jdk-8u131-linux-x64.tar.gz 和 apache-tomcat-8.0.44.tar.gz 到download目录
3、构建一个名为centos/tomcat8.0:v1.0的镜像
1 | docker build -t centos/tomcat8.0:v1.0 . |
3.2. 使用镜像
1、启动镜像
1 | docker run -d -p 28080:8080 centos/tomcat8.0:v1.0 /run.sh |
2、测试访问
1 | curl localhost:28080 |