windows下Docker部署Flask的教程
Docker默认安装路径是在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