准备一个flask项目(默认端口为5000)

项目下只有一个demo.py文件和requirements.txt。
demo.py内容如下

# @file: demo.py
from flask import Flask

app = Flask(__name__)


@app.route('/')
def test():
    return 'dockerfile test'


if __name__ == '__main__':
    app.run()

requirements.txt内容如下

Flask==2.0.1

运行结果为:
image.png
将项目上传到/usr/local/Dockerfile目录下

创建dockerfile文件

/usr/local/Dockerfile目录下新建一个Dockerfile文件

cd /usr/local/Dockerfile
vi Dockerfile

在Dockerfile文件中输入以下内容

FROM python:3.6
COPY /test /api_test/
WORKDIR /api_test/
RUN pip install -r requirements.txt
CMD python demo.py

构建image

/usr/local/Dockerfile目录下执行命令

docker build -t flaskdemo/test .
#最后的 . 代表本次执行的上下文路径,不可省略

执行结果
image.png

pip install 可能会碰到报错:Failed to establish a new connection: [Errno -3] Temporary failure in name r...
解决方案:添加谷歌DNS服务器地址,在/etc/resolv.conf 文件中添加 nameserver 119.29.29.29,重启docker即可解决

运行容器

docker run --name flaskdemo -p 5000:5000  flaskdemo/test

执行结果
image.png
容器已经在127.0.0.1:5000启动了服务

参考文档:
Docker命令

Q.E.D.


Nothing really matters to me!