容器docker打包flask项目

时间:2025-05-11 07:59:44
1 docker
1.1 环境
CentOs8.2
root 账号
  • 1
  • 2
1.2 安装
# centos8预装了podman与docker冲突,需要先卸载
# 查看那podman
rpm -q podman
# 卸载podman
dnf remove podman
  • 1
  • 2
  • 3
  • 4
  • 5
yum install -y yum-utils  device-mapper-persistent-data  lvm2

yum-config-manager --add-repo /linux/centos/

yum install docker-ce docker-ce-cli 
  • 1
  • 2
  • 3
  • 4
  • 5
报错:Failed to set locale, defaulting to -8
Adding repo from: /linux/centos/

# 解决
echo "export LC_ALL=en_US.UTF-8" >> /etc/profile
source /etc/profile
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
1.3 查看docker是否安装
docker --version
  • 1
1.4 启动docker
systemctl start docker
  • 1
1.5 查看docker服务状态
systemctl status docker
  • 1
2 Python flask项目部署到docker
2.1 生成
pip freeze > 
  • 1
2.1 创建dockerfile
vi Dockerfile

# 基于的基础镜像
FROM python:3
# 代码添加,dockerfile文件和flask_app_hwy在同一目录下
ADD ./flask_app_hwy /usr/src/app
# 设置app文件夹为工作目录
WORKDIR /usr/src/app
# 安装python依赖,在flask_app_hwy下
RUN pip install --no-cache-dir -r 

CMD [ "python", "/usr/src/app/__main__.py" ]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
2.2 创建镜像
# 在Dockerfile目录下执行
sudo docker build -t docker_flask .
  • 1
  • 2
2.3 查看镜像
docker images
  • 1
2.4 生成启动容器
docker run -itd -p 8000:8000 --name docker_flask_demo docker_flask

# -it: 表示交互式终端的容器,非启动后立刻结束的容器
# -d: 后台运行
# -p: 端口映射
# --name 容器名
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
2.5 容器操作
# 查看容器
docker ps -a

# 启动容器
docker start 容器id

# 停止
docker stop 容器id

# 重启
docker restart 容器id
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
2.6 删除镜像、容器
docker rmi 镜像id

docker rm 容器id
  • 1
  • 2
  • 3
2.7 查看容器日志
docker logs 容器id
  • 1
2.8 查看容器详细信息
docker inspect 容器id
  • 1
2.9 进入容器
docker exec -it 容器id /bin/bash 

# 退出
exit
  • 1
  • 2
  • 3
  • 4