在centos docker中封装flask应用,并使用命令和dockerfile两种方式制作镜像实战

发布时间:2023-05-22 14:30

环境描述:

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

    2.宿主linux系统:centos 7

    3.保证docker服务已安装

功能描述:

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

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

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

    https://blog.csdn.net/u011089760/article/details/90681807

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 docker中封装flask应用,并使用命令和dockerfile两种方式制作镜像实战_第1张图片

测试成功,新打包的镜像包含已经运行的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 进入点,后面跟的是需要执行的脚本

   在centos docker中封装flask应用,并使用命令和dockerfile两种方式制作镜像实战_第2张图片

    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文件

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

   在centos docker中封装flask应用,并使用命令和dockerfile两种方式制作镜像实战_第3张图片

   在centos docker中封装flask应用,并使用命令和dockerfile两种方式制作镜像实战_第4张图片

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

   在centos docker中封装flask应用,并使用命令和dockerfile两种方式制作镜像实战_第5张图片

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

   

6.浏览器访问flask接口url测试运行状态:http://192.168.122.129:8000/time

    

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

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号