进入docker官网
https://www.docker.com/
点击 Docker Desktop,下载
安装完后根据提示重启
重启后可能会弹出如下提示
进入此页面下载安装WSL2 linux内核
https://docs.microsoft.com/zh-cn/windows/wsl/install-manual#step-4—download-the-linux-kernel-update-package
点击restart或者重新打开 docker desktop 即可
再次进入之后需要为 docker engine 配置镜像源
进入 settings 页面
复制镜像配置
{
"debug": true,
"experimental": false,
"insecure-registries": [],
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
粘贴到这里,点击 apply&restart
docker就安装好了
创建一个flask项目,在根目录下创建一个文件 Dockerfile
输入如下内容【下面会逐条解释命令的意思】
# run
from python:3.7-slim-buster
workdir /app
copy . .
run pip install -r requirements.txt
cmd ["python", "run.py"]
## gunicorn
# from python:3.7-slim-buster
# workdir /app
# copy . .
# run pip install -r requirements.txt
# run pip install gunicorn
# cmd gunicorn -w 1 -b 0.0.0.0:5555 run:app
其中:
from python:3.7-slim-buster 的意思是使用python3.7的开发环境镜像,更多镜像的写法请参考 docker hub https://registry.hub.docker.com/
检索框输入python
点进去后很多版本镜像
workdir /app 的意思是配置 docker 镜像中项目的操作根目录,从这条语句后,针对 docker 镜像的操作根目录都是 /app
copy . . 中,第一个点是当前 Dockerfile 文件的目录位置(就是flask项目根目录位置),第二个点是 docker 镜像中项目的根目录位置(就是刚才配置的 /app)
run pip install -r requirements.txt 执行这条命令安装 flask 的依赖包
cmd [“python”, “run.py”] 执行这条命令启动docker容器中flask项目
docker build -t my_dwl .
其中:
-t 参数指定镜像名称
结尾那个点告诉 docker 应该在当前目录下寻找 Dockerfile 文件
创建好镜像后,打开 docker desktop 可以看到创建好的镜像
执行命令启动项目
docker run -p 5556:5555 -d my_dwl
其中:
-p 参数将本机的 5556端口 映射到 docker 容器的 5555端口上(注意,项目的启动端口要与 docker 容器的端口一致,如下图)
-d 参数指定运行哪个docker镜像
此时,docker desktop 上就会显示运行在docker容器中的项目了
不出意外的话就可以通过你 项目的ip 和 docker映射的端口 访问了
ps:flask项目只是简单的测试运行,不是生产环境,gunicron+supervisor+nginx+flask+docker的生产环境部署方法写好之后链接会挂在这篇文章下