这一节介绍怎么将python程序打包成一个image,然后运行为一个container。
首先,创建/home/python/目录
mkdir /home/python/
然后创建app.py文件。
vim app.py
app.py文件的内容如下:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello Docker!"
if __name__ == '__main__':
app.run(host="0.0.0.0", port=20000)
接着,先安装flask。
pip install flask
然后,查看防火墙状态:
systemctl status firewalld
active(running)表示防火墙是打开的。
接着,开放20000端口。
firewall-cmd --zone=public --add-port=20000/tcp --permanent
重启防火墙
firewall-cmd --reload
然后,运行下面的命令来运行app.py。
python app.py
然后,打开浏览器,输入centos虚拟机的ip加上端口
http://192.168.216.128:20000
这样就可以在浏览器上访问了。接着,我们要把app.py打包成一个image,然后把这个image运行起来。
然后,创建Dockerfile文件。
vim Dockerfile
Dockerfilr内容如下:
FROM python:3.9
LABEL maintainer="2977552486@qq.com"
RUN pip install flask
COPY app.py /app/
WORKDIR /app
EXPOSE 20000
CMD ["python", "app.py"]
然后通过下面的命令来build成image。
docker build -t flask-hello-docker .
最后,通过下面的命令运行image。
docker run -d -p 20000:20000 flask-hello-docker
备注:-d表示在后台运行, -p
是docker run
命令的一个选项,它用于将容器的端口映射到主机的端口。在这个例子中,-p 20000:20000
选项将容器的端口20000映射到主机的端口20000。这意味着,当你在浏览器中输入http://192.169.216.128:20000时,请求将会被转发到容器的端口20000,从而访问你的Flask应用程序。