当前位置:首页>python>Python学习【172】:Docker 从零搭建 Python + Nginx + MySQL 开发环境:一个完整的实战记录

Python学习【172】:Docker 从零搭建 Python + Nginx + MySQL 开发环境:一个完整的实战记录

  • 2026-10-11 06:09:25
Python学习【172】:Docker 从零搭建 Python + Nginx + MySQL 开发环境:一个完整的实战记录
学前花絮
很多时候,我们看 Docker 教程,总是被镜像加速、端口映射、数据卷挂载这些概念绕晕。这篇文章记录了从一台 Ubuntu 虚拟机开始,解决网络问题、配置镜像源、拉取 Nginx/MySQL/Python 镜像,并最终让一个 Python Web 服务跑在浏览器里的完整过程。所有步骤均实测通过。
Docker搭建开发环境
环境准备
  • 宿主机:Windows 10/11
  • 虚拟机软件:VirtualBox
  • 虚拟机系统:Ubuntu 22.04(已安装 Docker)
  • 目标:在 Docker 中运行 Nginx、MySQL、Python 应用,并能通过 Windows 浏览器访问
如果你的虚拟机还没装 Docker,请先执行 sudo apt install docker.io 并启动服务。
解决国内 Docker 拉取镜像慢的问题
修改 Docker 镜像加速器
编辑 /etc/docker/daemon.json:
`sudo nano /etc/docker/daemon.json`
写入以下内容(多个备用源,只要有一个可用就能拉取):

重启 Docker:
sudo systemctl restart docker
拉取必要镜像

如果拉取过程中出现 connection reset by peer 等网络错误,多试几次即可,Docker 会断点续传。
运行各服务并测试
运行 Nginx 容器

在虚拟机浏览器访问 http://localhost:8080,看到 Nginx 欢迎页即成功。
运行 MySQL 容器

验证连接:

运行 Python Web 服务(输出 “hello, docker”)
创建flask应用:

运行容器并挂载代码:

访问 http://虚拟机IP:5000,看到 hello, docker。
项目移植方法
如果我想把这个项目移植到另一台机器,该怎么做?
Docker 最大的优势就是“一次构建,到处运行”。下面是标准的移植流程:
  1. 导出镜像(在源机器上) 将需要用到的镜像保存为 .tar 文件:

  2. 传输文件 将 .tar 文件通过 U 盘、网络共享或 scp 复制到目标机器。
  3. 导入镜像(在目标机器上)

  4. 迁移数据卷(如果需要保留 MySQL 数据) 源机器上 MySQL 的数据卷挂载在 ~/docker/mysql/data,将该目录整体打包:

    传输到目标机器后解压到相同路径,并确保 Docker 运行 MySQL 时仍然挂载该目录。
  5. 重新运行容器
在目标机器上使用相同的 docker run 命令(注意端口冲突和路径一致性)即可。
小结
我们从一个干净的 Ubuntu 虚拟机出发,解决了 Docker 镜像拉取慢的问题,依次运行了 Nginx、MySQL 和 Python Web 服务,最终在浏览器中看到了 hello, docker。这个简单的例子展示了 Docker 的核心价值:环境隔离、快速部署、一次构建到处运行。
让我们保持学习的热情,2026年一马当先、马到成功!

最新文章

随机文章