欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker和DevOps:7.Dockerfile实战

程序员文章站 2022-04-30 11:31:04
...

一、准备python程序

1.代码
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
	return "hello docker"
if __name__ == '__main__':
	app.run()

这段程序是通过Flask创建一个web应用,运行后就可以通过浏览器访问。

二、编写Dockerfile

FROM python:2.7	//直接使用python2.7作为基础镜像,就不需要再手动安装python环境了
LABEL maintainer="aaa@qq.com"
LABEL description="python web hellodocker"

RUN pip install Flask	//安装python的Flask第三方库
COPY python_app.py /app	//将python程序文件复制到镜像中/app目录下

WORKDIR /app	//进入/app目录下

EXPOSE 5000 //将容器的5000端口暴露出来
CMD ["python", "python_app.py"]

Docker和DevOps:7.Dockerfile实战

三、构建镜像

docker build -t hellozhaoxudong/python-web-helloword .
1.构建报错

在进入镜像中的/app文件夹时报错/app不是一个文件夹。同时我们可以看到在构建镜像的过程中生成了一些中间镜像。
Docker和DevOps:7.Dockerfile实战

2.依靠中间镜像进行Debug
docker run -it 中间镜像ID /bin/bash 

Docker和DevOps:7.Dockerfile实战

3.修改Dockerfile
COPY python_app.py /app
修改为:
COPY python_app.py /app/
4.重新构建镜像

构建成功:
Docker和DevOps:7.Dockerfile实战
查看一下镜像:
Docker和DevOps:7.Dockerfile实战

四、运行镜像

即通过我们构建好的镜像创建容器

1.创建容器
docker run hellozhaoxudong/python-web-helloword

Docker和DevOps:7.Dockerfile实战
但是这里我们ctrl+C后这个容器就停止运行了。

2.创建容器并后台运行
docker run -d hellozhaoxudong/python-web-helloword

Docker和DevOps:7.Dockerfile实战