在之前搭建Docker镜像实战的基础上,我们可以使用Dockerfile快速地构建镜像,这里会用到之前构建好的tomcat-test:v1镜像,当然我们这里只是demo,最好安装好各种开发环境需要用到的软件,使用的时候只要起一个容器就开始了,不同服务器或者不同容器的开发环境都是一样的。
接下来开始使用Dockerfile构建镜像:
1. 建目录:
mkdir tomcat-docker ; cd tomcat-docker;
2. 创建两个重要的文件(Dockerfile告诉docker怎么制作一个镜像, start.sh是启动脚本):
touch Dockerfile start.sh
3. 将需要启动的services写入start.sh,然后在最后加上"/bin/bash".
安装的服务多的话(以下的services都是yum安装的):
#!/bin/bash
service nginx start
service mysql start
service mongodb start
service redis-server start
/bin/bash # 最后这行千万不要漏
只启动tomcat的脚本(.tar.gz解压的,用yum安装的话,使用service tomcat start ):
#!/bin/bash
/opt/soft/tomcat/apache-tomcat-8.5.24/bin/startup.sh
/bin/bash # 最后这行千万不要漏
4. 编写Dockerfile文件
FROM tomcat-test:v2
ADD start.sh /usr/local/start.sh
RUN chmod +x /usr/local/start.sh
EXPOSE 8080
CMD ["/usr/local/start.sh"]
5. 制作新的镜像
docker build -t tomcat-test:v2 .
也可以指定路径:
docker build -t tomcat-test:v2 /opt/soft/tomcat-docker/Dockerfile .
执行build会有Step1,Step2等等一些步骤,稍等一会,如果看到Successfully built xxxxxx那就证明创建镜像成功了。
6. 本地镜像列表就会出现了docker images
7. 可以创建并跑起容器,通过镜像中添加的脚本运行tomcat
docker run -d -p 8080:8080 tomcat-test:v1 /usr/local/start.sh
使用attach进入容器,确认应该运行的程序是否正常运行,容器内使用ps aux查看运行中的程序;(这里是访问localhost:8080是否可以)。
8. docker导出成tar包,在不同机器之间拷贝、导入然后开发了;
参考:
http://www.cnblogs.com/llhf/p/5149378.html
http://www.jianshu.com/p/369e75f6303b
详细的Dockerfile指令介绍,也可以看《Spring Cloud与Docker微服务架构实战》:
http://www.jianshu.com/p/cbce69c7a52f