Docker和DevOps:7.Dockerfile实战
程序员文章站
2022-04-30 11:31:04
...
Dockerfile实战
一、准备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 build -t hellozhaoxudong/python-web-helloword .
1.构建报错
在进入镜像中的/app文件夹时报错/app不是一个文件夹。同时我们可以看到在构建镜像的过程中生成了一些中间镜像。
2.依靠中间镜像进行Debug
docker run -it 中间镜像ID /bin/bash
3.修改Dockerfile
COPY python_app.py /app
修改为:
COPY python_app.py /app/
4.重新构建镜像
构建成功:
查看一下镜像:
四、运行镜像
即通过我们构建好的镜像创建容器
1.创建容器
docker run hellozhaoxudong/python-web-helloword
但是这里我们ctrl+C后这个容器就停止运行了。
2.创建容器并后台运行
docker run -d hellozhaoxudong/python-web-helloword