对于java程序员来讲,要想使用Docker来部署你的应用,那么在镜像中安装相似于tomcat的容器基本上是必须的(sprintboot项目除外),本篇介绍本身基于对centos镜像的修改,建立本身的想要的tomcat运行环境镜像的过程。java
一、拉取centos镜像 docker pull centoslinux
二、在宿主机(即你的linux机)穿件/opt/software目录,把要用到的安装包放在里面程序员
三、启动centos容器 docker run -i -t -v /opt/software/:/mnt/software/ --privileged=true 5182e96772bf /bin/bash,web
-
-i:表示以“交互模式”运行容器docker
-
-t:表示容器启动后会进入其命令行shell
-
-v:表示须要将本地哪一个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>apache
- --privileged=true 不加在容器内部可能会提示操做权限问题
- 5182e96772bf是centos镜像的id
本例中,全部安装程序都放在了宿主机的/opt/software/目录下,如今须要将其挂载到容器的/mnt/software/目录下。初始命令表示一旦容器启动,须要运行的命令,此时使用“/bin/bash”,表示启动后直接进入bash shell。centos
四、安装软件tomcat
cd /mnt/software,能够看到咱们提早放置好的安装包bash
jdk安装:tar -zxf /mnt/software/jdk-8u152-linux-x64.tar.gz -C /opt
tomcat安装:tar -zxf /mnt/software/apache-tomcat-8.0.53.tar.gz -C /opt
五、编写运行脚本
touch /root/run.sh
vi /root/run.sh
编辑以下内容到脚本中
#!/bin/bash export JAVA_HOME=/opt/jdk1.8.0_152/ export PATH=$JAVA_HOME/bin:$PATH sh /opt/apache-tomcat-8.0.53/bin/catalina.sh run
为运行脚本添加执行权限: chmod u+x /root/run.sh
六、退出容器,建立新镜像
以上步骤完成后,输入exit退出容器,docker ps -a,能够看到刚刚修改好的容器,记住容器id
使用如下命令,根据某个“容器 ID”来建立一个新的镜像 docker commit containerID mytomcat:
1.0
建立完成后输入 docker images,能够看到咱们修改后的镜像
七、根据咱们建立的tomcat镜像,启动对应的容器
docker run -d -p
9999
:
8080
-v /opt/webapps/:/opt/tomcat/webapps/ --name mytomcat_1 mytomcat:
1.0
/root/run.sh
-
-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出如今输出终端上。
-
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 9999 端口,这样就向外界暴露了 9999 端口,可经过 Docker 网桥来访问容器内部的 8080 端口了。
-
-v:表示须要将本地哪一个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>,咱们的web项目的jar能够放在/opt/webapps/下,重启容器,咱们的应用就启动起来了
-
--name:表示容器名称,用一个有意义的名称命名便可。