我们都知道docker是一个深受大家喜爱的打包、分发、部署的工具,它与传统的虚拟机相比具有轻量、性能好、稳定等多个优点。在第一次尝试制作自己的镜像时,我尝试使用了一个极其简单的flask项目,它仅有以下几行代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world(): # put application's code here
return 'Hello World!'
if __name__ == '__main__':
app.run(port=5000)
Python在项目根目录下编写Dockerfile:
FROM python:3.8-slim-buster
WORKDIR /app
COPY . .
RUN pip install flask
CMD ["python", "app.py"]
Docker之后成功运行打包命令:
docker build -t build-test .
Bash运行容器:
docker run -p 5001:5000 -d build-test
OK 👍,到这里一切顺利。正当我打开本地主机访问http://localhost:5001端口时,却显示无法连接到服务器,这是为什么呢。我在开始一直认为是端口映射失败造成的,但在网上查阅了大量资料后发现其实是容器内运行的IP地址是默认的127.0.0.1,这是一个回环地址,只有自己可以访问,宿主机也无法访问。因此我们需要将代码中的app.run(port=5000)更改为app.run(host=’0.0.0.0’, port=5000) 后重新打包运行,这样本机浏览器重新访问5001端口就可以正常看到‘Hello World’!