windows下Docker部署Flask的详细教程
袖子味 人气:0Docker默认安装路径是在C盘,Windows中修改Docker**默认安装****路径方法:
1.先创建 D:\Program Files\Docker 目录
2.运行命令,创建链接
mklink /J "C:\Program Files\Docker" "D:\codeSoftware\Docker"
3.点击exe安装完成后,查看版本
docker -v
4.运行docker的hello world
docker run hello-world
查看镜像
docker images
5.docker部署flask例子
5.1 新建Flaskdemo 新建虚拟环境
python -m venv venv
激活
.\venv\Scripts\activate
安装Flask
pip install Flask
app.py代码
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return "hello,learn docker" if __name__ == '__main__': app.run(host="0.0.0.0",port=7001,debug=True)
5.2 创建DockerFile文件
注:放在项目的根目录下,然后根据里面的指令来配置具体项目所需的环境
这里使用的是vscode里面的插件docker
Ctrl+Shift+P,输入docker:add
即可依据框架选择,然后自动生成
# For more information, please refer to https://aka.ms/vscode-docker-python FROM python:3.8-slim EXPOSE 5001 # Keeps Python from generating .pyc files in the container ENV PYTHONDONTWRITEBYTECODE=1 # Turns off buffering for easier container logging ENV PYTHONUNBUFFERED=1 # Install pip requirements COPY requirements.txt . RUN python -m pip install -r requirements.txt WORKDIR /app COPY . /app # Creates a non-root user with an explicit UID and adds permission to access the /app folder # For more info, please refer to https://aka.ms/vscode-docker-python-configure-containers RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app USER appuser # During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug CMD ["gunicorn", "--bind", "0.0.0.0:5001", "app.app:app"]
本次demo的目录结构:
5.3 构建镜像
docker build -t docker_flask_demo .
docker build
命令主要是用于创建镜像,当中的参数-tag
,-t
代表的是镜像的名字及标签
5.4 运行容器
使用docker run
命令基于镜像运行一个容器
常用的参数有:
-d
代表容器在后台运行--name
代表别名-p
:用于配置宿主机与容器的端口映射
docker run -d --name flask_demo -p 5001:5001 docker_flask_demo
5.5 访问ipconfig找到虚拟机ip
即可访问部署的服务,或者使用http://localhost:7001/来访问
6.其他知识点
6.1 启动和停止容器
docker start 容器id # 启动容器 docker restart 容器id # 重启容器 docker stop 容器id # 停止正在运行的容器 docker kill 容器id # 强制停止运行的容器
6.2 删除容器
docker rm 容器id
6.3查看容器进程信息
docker top 容器id
6.4删除镜像
docker rmi 镜像id
6.5查看日志
docker logs -f afdf90e5afbd
6.6 查看容器的信息
docker inspect 容器id
6.7命令列出所有容器
docker ps -a
加载全部内容