docker run -i -t -v /mnt/iso:/tmp/repositories tomcat:hps /bin/bash
#进行一些比如安装之类的操作。
docker ps
#找到自己正在操作的容器id(例如3bf5491933f2),然后退出交互界面,执行以下命令
docker commit 3bf5491933f2 tomcat:hps1
###此时的容器tomcat:hps1实际上是会加一层/bin/bash的操作,如果直接执行docker run -d -p 8081:8080 tomcat:hps1 不加命令,默认就是提供/bin/bash命令,因此需要在这一层外面再封装一层命令,并将容器内tomcat端口(以下已8080为例)暴露出来,通过Dockerfile方式来实现,文件内容如分割线内所示:
#----------分割线----------# This is a comment FROM tomcat:hps1 # expose httpd port EXPOSE 8080 # the command to run CMD ["/usr/local/tomcat/bin/catalina.sh","run"]#----------分割线----------
#然后在Dockerfile文件所在目录下,执行以下命令生成docker镜像:
docker build -t tomcat:hmr .
#这时候直接执行以下命令可以验证
docker run -d -p 8081:8080 tomcat:hmr
#如果希望将这个tomcat:hmr镜像保存成文件,可以执行:
docker save -o tomcat_hmr.tar tomcat:hmr
#这样就可以拷贝到其他服务器上去,然后可以在那台服务器上执行以下命令将镜像加载到本地(而非仓库中):
docker load -i tomcat_hmr.tar
###如果不想再在tomcat:hps1外封装一层,需要执行以下命令才能使用:
docker run -d -p 8081:8080 tomcat:hps1 /usr/local/tomcat/bin/catalina.sh run