docker从下载到Python项目打包到容器中运行(解决下拉超时问题)

  • docker安装(如果第一步或者第二步没有成功,说明是你的镜像源有问题,私聊我获取镜像源)镜像位置_/etc/yum.repos.d/CentOS-Base.repo
  1. sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  2. sudo yum install docker-ce docker-ce-cli containerd.io
  3. 启动docker(如果无法启动,返回到/etc/yum.repos.d/目录下,把****docker****那个文件的改名字,最后一个.back删除,只保留前面的部分)

|----------------------------------------------------------|
| sudo systemctl start docker sudo systemctl enable docker |

  1. 测试docker

docker version

  • 项目打包部署:
  1. 编写Python代码

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| # app.py from flask import Flask app = Flask(name) @app.route('/') def hello_world(): return 'Hello, Docker!' if name == "main": app.run(host='0.0.0.0', port=5000) |

  1. 创建依赖文件(requirements.txt)

|--------------|
| flask==2.0.1 |

也可以使用命令行创建,命令行创建的依赖文件包含本地所有的安装包。

|--------------------------------|
| pip freeze > requirements.txt |

  1. 编写Dockerfile

文件名字就是Dockerfile

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| # 使用官方Python基础镜像 FROM python:3.9-slim # 设置工作目录 WORKDIR /usr/src/app # 将项目的依赖文件复制到工作目录 COPY requirements.txt ./ # 安装依赖 RUN pip install --no-cache-dir -r requirements.txt # 将Python脚本复制到容器中 COPY . . # 暴露应用的端口 EXPOSE 5000 # 运行Python应用 ​​​​​​​CMD ["python", "app.py"] |

  1. 构建Docker镜像(my-python-app .)后面的'.'必须有,名字随便起。但是前提是要和Dockerfile文件同一目录下运行这条命令。

|---------------------------------|
| docker build -t my-python-app . |

5、运行容器

构建完成后,运行以下命令启动容器:

docker run -d -p 5000:5000 my-python-app

该命令将容器中的5000端口映射到本地主机的5000端口,你可以在浏览器中访问http://localhost:5000,查看应用是否成功运行,输出应为"Hello, Docker!"。

  • 下拉超时构建

下拉报错:

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [+] Building 856.8s (2/2) FINISHED docker:default => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 420B 0.0s => ERROR [internal] load metadata for docker.io/library/python:3.8 856.7s ------ > [internal] load metadata for docker.io/library/python:3.8: ------ Dockerfile:2 -------------------- 1 | # 使用官方Python 3.8镜像作为基础镜像 2 | >>> FROM python:3.8 3 | 4 | # 设置工作目录 -------------------- ERROR: failed to solve: python:3.8: failed to resolve source metadata for docker.io/library/python:3.8: failed to do request: Head "https://docker.registry.cyou/v2/library/python/manifests/3.8?ns=docker.io": read tcp 192.168.121.138:36942->172.64.107.134:443: read: connection reset by peer |

创建一个文件:

|----------------------------|
| vm /etc/docker/daemon.json |

构建链接

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| { "registry-mirrors": [ "https://docker.registry.cyou/", "https://docker-cf.registry.cyou/", "https://dockercf.jsdelivr.fyi/", "https://docker.jsdelivr.fyi/", "https://dockertest.jsdelivr.fyi/", "https://mirror.aliyuncs.com/", "https://dockerproxy.com/", "https://mirror.baidubce.com/", "https://docker.m.daocloud.io/", "https://docker.nju.edu.cn/", "https://docker.mirrors.sjtug.sjtu.edu.cn/", "https://docker.mirrors.ustc.edu.cn/", "https://mirror.iscas.ac.cn/", "https://docker.rainbond.cc/", "https://jq794zz5.mirror.aliyuncs.com" ] } |

重启docker

|---------------------------------------------------------------------------------------------|
| # 重新加载配置 systemctl daemon-reload # 重启docker systemctl restart docker # 查看配置是否生效 docker info |

生效示例:

参考链接:

1\][=> ERROR \[internal\] load metadata for docker.io/library/alpine:3.13+vscode+python+docker+本地调试问题-CSDN博客](https://blog.csdn.net/m0_74140153/article/details/142309629?ops_request_misc=&request_id=&biz_id=102&utm_term=%20%3E%20%5Binternal%5D%20load%20metadata%20fo&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-142309629.nonecase&spm=1018.2226.3001.4187 "=> ERROR [internal] load metadata for docker.io/library/alpine:3.13+vscode+python+docker+本地调试问题-CSDN博客") \[2\] [解决docker一直出现"=> ERROR \[internal\] load metadata for docker.io/library/xxx"的问题-CSDN博客](https://blog.csdn.net/qq_37380557/article/details/142649071?ops_request_misc=&request_id=&biz_id=102&utm_term=%20%3E%20%5Binternal%5D%20load%20metadata%20fo&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-142649071.nonecase&spm=1018.2226.3001.4187 "解决docker一直出现“=> ERROR [internal] load metadata for docker.io/library/xxx“的问题-CSDN博客") \[3\] [Python项目打包并部署到Docker_python项目打包成docker-CSDN博客](https://blog.csdn.net/qq_41973632/article/details/142464164?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%88%91%E4%BB%A3%E7%A0%81%E9%9C%80%E8%A6%81%E7%9A%84%E4%BE%9D%E8%B5%96%E5%A6%82%E4%BD%95%E7%94%A8docker%E6%89%93%E5%8C%85&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-142464164.142%5Ev101%5Epc_search_result_base9&spm=1018.2226.3001.4187 "Python项目打包并部署到Docker_python项目打包成docker-CSDN博客")

相关推荐
用户8356290780519 分钟前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_10 分钟前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
小Wang4 小时前
npm私有库创建(docker+verdaccio)
前端·docker·npm
数据智能老司机7 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机8 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机8 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机8 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i8 小时前
drf初步梳理
python·django
每日AI新事件8 小时前
python的异步函数
python
这里有鱼汤9 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python