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镜像实例的所有环境和文件应用
1.编辑Dockerfile如下
#VERSION 0.0.1
#base image
FROM centos
MAINTAINER gmh "[email protected]"
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.py和start_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测试运行状态:http://192.168.122.129:8000/time
可以看到Dockerfile打包的镜像会在基础镜像的版本上安装了环境、复制了相关的文件并在启动的时候运行了flask应用