制作docker镜像

Posted by dacaoxin on October 24, 2021

使用docker单机部署flask应用步骤:

编写flask简单应用

创建目录flask_demo, 并在目录下编写一个简单的flask应用,并添加run_server.py文件,内容如下:

1
2
3
4
from app import create_app
app = create_app()
if __name__ == '__main__':
    app.run('0.0.0.0', port=5000)

需要注意的是,这里的host一定要写成0.0.0.0,否则会使用默认参数127.0.0.1,这样会造成只能在docker容器内访问web应用,而无法在宿主机里访问到web服务。

生成requirements.txt

使用命令:

1
pip freeze > requirements.txt

在项目根目录生成requirements.txt依赖文件。

编写Dockerfile

我使用的是python3环境,所以可以基于Docker Hub里的python 3版本制作Dockerfile:

1
2
3
4
5
6
7
8
FROM python:3

WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 5000
CMD [ "python", "./run_server.py" ]

生成docker image

使用命令:

1
> $ docker image build -t flask_demo:latest .

生成docker image,使用命令:

1
> $ docker image ls

查看生成的image信息:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
flask_demo      latest              6f79e0481854        45 minutes ago      948MB
python              3                   34a518642c76        8 days ago          929MB

启动container

使用命令:

1
> $ docker run -d -p 5000:5000 --name flask_demo flask_demo:latest

启动container。之后就可以在宿主机浏览器上输入url访问flask 服务。