Dockerfile构建镜像

在之前搭建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

 

posted @ 2017-12-13 14:26  乐在克里特  阅读(143)  评论(0编辑  收藏  举报