博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在centos docker中封装flask应用,并使用命令和dockerfile两种方式制作镜像实战
阅读量:4288 次
发布时间:2019-05-27

本文共 1788 字,大约阅读时间需要 5 分钟。

环境描述:

    1.基础镜像版本centos最新版本

    2.宿主linux系统:centos 7

    3.保证docker服务已安装

功能描述:

    拉去centos镜像,并使用centos镜像封装自定义的flask应用,将封装的新的centos实例打包为新的镜像

方式一:使用命令的方式打包镜像

1.查看上篇在centos docker中安装flask及运行flask应用的文章

    

2.安装运行之后,使用命令打包已经运行正常的实例

    docker commit -a "gmh" -m "centos flask" centos centos:flask

OPTIONS说明:

-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停

最后两个参数是: 容器名称或id    打包的镜像名称:标签

执行之后查看生成的镜像列表:

3.测试新生成的镜像是否运行正常

   1). 运行新的镜像生成实例:docker run -dit -p 8000:8000 --name centos_flask centos:flask

   2).通过命令的方式启动flask应用:docker exec -itd centos_flask /bin/bash -c "python /home/flask_demo.py"

   3).使用浏览器访问flask接口url:http://192.168.122.129:8000/time

测试成功,新打包的镜像包含已经运行的centos镜像实例的所有环境和文件应用

方式二:使用Dockerfile打包镜像

    1.编辑Dockerfile如下

#VERSION 0.0.1

#base image

FROM centos

MAINTAINER gmh "123123@qq.com"

ADD flask_demo.py /home/

ADD start_flask.sh /usr/local/

RUN yum -y install epel-release

RUN yum -y install python-pip

RUN yum clean all

RUN pip install flask

RUN chmod +x /usr/local/start_flask.sh

EXPOSE 8000

#start flask

ENTRYPOINT /usr/local/start_flask.sh

 

   提示: 

   1). FROM 表示基于哪个基础镜像制作镜像,这里是基于centos的最新镜像 
   2). MAINTAINER 表示由哪个维护这个镜像 
   3).ADD 表示将宿主机上的文件复制到镜像的指定目录,这里是将flask_demo.pystart_flask.sh复制到镜像的/home/和/usr/local目录下

   4).因此start_flask.sh是新增文件,因此还需要给它添加可执行权限,不然会报权限错误 

   5. RUN 运行指定的命令,这里用于在制作镜像的时候安置pip和flask第三个插件,安装的话运行python文件回报错
   6).EXPOSE 8000 指定暴露8000 端口 
   7).ENTRYPOINT 进入点,后面跟的是需要执行的脚本

   

    2.编辑start_flask.sh的脚本代码如下

    #!/bin/bash

    python /home/flask_demo.py

   

    3.使用Dockerfile打包镜像:docker build -t="centos_flask:v4" .

    提示:

       1) -t=”centos_flask:v4” 指定镜像名称为centos_flask,tag为v4

       2) 最后的一点(.)表示当前目录下的Dockerfile文件

   打包过程中会看到执行的安装环境过程如下:

   

   

4.查看使用dockerfile打包的最新镜像:docker images

   

5.启动镜像:docker run -itd -p 8000:8000 --name centos_4 centos_flask:v4

   

6.浏览器访问flask接口url测试运行状态:

    

   可以看到Dockerfile打包的镜像会在基础镜像的版本上安装了环境、复制了相关的文件并在启动的时候运行了flask应用

转载地址:http://jkagi.baihongyu.com/

你可能感兴趣的文章
jquery基础知识(一)
查看>>
jquery基础知识(二)
查看>>
java基础知识---IO常用基础操作(一)
查看>>
java基础知识---IO常用基础操作(二)
查看>>
JVM平台上的响应式流(Reactive Streams)规范
查看>>
JDK8的Optional用法
查看>>
连接oracle数据库的几种方法
查看>>
JQuery版本演化jQuery 1.0-2.0
查看>>
mysql中文编程问号问题
查看>>
javascript之Ajax简介
查看>>
mysql-5.0.27-win32安装
查看>>
jquery之选择器简介
查看>>
html中绝对路径和相对路径
查看>>
DOM对象与jquery对象的差异
查看>>
使用jquery隐藏和移动dom
查看>>
JSP中使用路径问题
查看>>
Could not parse configuration: /hibernate.cfg.xml
查看>>
使用Httpclient4.4+Jsoup登录3G版人人网
查看>>
HttpClient模拟手机人人网登陆(一)---抓包
查看>>
在FireFox/IE浏览器中关闭缓存
查看>>