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博客")

相关推荐
有点小帅得平哥哥2 分钟前
本地部署index-tts并且通过docker做成镜像
docker·index-tts
破无差16 分钟前
python实现简单的地图绘制与标记20250705
python
喜欢吃豆37 分钟前
目前最火的agent方向-A2A快速实战构建(二): AutoGen模型集成指南:从OpenAI到本地部署的全场景LLM解决方案
后端·python·深度学习·flask·大模型
好开心啊没烦恼1 小时前
Python 数据分析:DataFrame,生成,用字典创建 DataFrame ,键值对数量不一样怎么办?
开发语言·python·数据挖掘·数据分析
周树皮不皮2 小时前
20250704【翻转&二叉树】|Leetcodehot100之226【pass】&今天计划
python
魔芋红茶2 小时前
spring-initializer
python·学习·spring
喜欢吃豆2 小时前
快速手搓一个MCP服务指南(九): FastMCP 服务器组合技术:构建模块化AI应用的终极方案
服务器·人工智能·python·深度学习·大模型·github·fastmcp
一个天蝎座 白勺 程序猿2 小时前
Python(28)Python循环语句指南:从语法糖到CPython字节码的底层探秘
开发语言·python
小张是铁粉2 小时前
docker学习二天之镜像操作与容器操作
学习·docker·容器
烟雨书信2 小时前
Docker文件操作、数据卷、挂载
运维·docker·容器