从“本地能跑”到“到处能跑”——Docker如何让Web应用“搬家不翻车”

一、步骤一:搞懂Docker核心概念——3个词让你入门

1. 镜像(Image):应用的“安装光盘”

  • 本质:只读模板,包含应用运行所需的所有内容(代码、依赖、配置)。
  • 类比:就像『Windows』安装光盘,里面有系统文件和安装程序,用它能装出多个相同的系统。
  • 举例:Python官方镜像(python:3.9-slim)包含Python解释器和基础库,你可以基于它添加自己的代码。

2. 容器(Container):镜像的“运行实例”

  • 本质:镜像启动后的独立进程,有自己的文件系统和网络,与其他容器隔离。
  • 类比:用安装光盘(镜像)装出来的『Windows』系统(容器),可以同时装多个,互不影响。
  • 特点:启动快(秒级)、资源占用少(共享主机内核)、删除后数据不残留(除非挂载外部存储)。

3. 仓库(Repository):镜像的“应用商店”

  • 作用:存储和分发镜像,类似GitHub存代码。
  • 常用仓库:Docker Hub(官方,有Python、Nginx等官方镜像)、阿里云镜像仓库(国内访问快)。

二、步骤二:编写Dockerfile——给应用“定制集装箱”

以Python Flask应用为例,项目结构如下:

my_flask_app/

├── app.py # Flask应用代码

├── requirements.txt # 依赖库列表(如flask==2.0.1)

└── Dockerfile # 镜像构建脚本(重点)

Dockerfile编写详解(逐行解释):

dockerfile

复制

# 1. 选择基础镜像(从仓库拉取Python 3.9环境)

FROM python:3.9-slim

# 2. 设置工作目录(后续命令在此目录执行)

WORKDIR /app

# 3. 复制本地文件到镜像(把代码和依赖文件复制进去)

COPY . .

# 4. 安装依赖(用pip安装requirements.txt里的库)

RUN pip install --no-cache-dir -r requirements.txt

# 5. 声明端口(告诉Docker容器会监听5000端口,仅声明)

EXPOSE 5000

# 6. 容器启动命令(运行Flask应用)

CMD ["python", "app.py"]

jrhz.info

核心指令避坑点:

  • FROM:选官方镜像(如python:3.9-slim),避免非官方镜像的安全风险;
  • COPY:.表示当前目录,确保Dockerfile和代码在同一目录;
  • RUN:安装依赖时加--no-cache-dir,减小镜像体积;
  • CMD:只能有一个,若写多个,只有最后一个生效。

三、步骤三:构建镜像+运行容器——让应用“跑起来”

1. 构建镜像(把Dockerfile变成可运行的“集装箱”)

打开终端,进入my_flask_app目录,执行:

bash

复制

docker build -t my-flask-app:1.0 .

  • 参数说明
  • -t my-flask-app:1.0:给镜像起名“my-flask-app”,版本号“1.0”;
  • .:指定Dockerfile所在目录(当前目录)。
  • 构建成功标志:终端显示“Successfully built [镜像ID]”。

2. 运行容器(启动应用,对外提供服务)

执行以下命令,将容器的5000端口映射到主机的5000端口:

bash

复制

docker run -p 5000:5000 my-flask-app:1.0

  • 参数说明
  • -p 5000:5000:主机端口:容器端口(访问http://localhost:5000即可打开应用);
  • 验证成功:浏览器输入http://localhost:5000,看到Flask应用页面。

3. 常用操作:查看/停止容器

  • 查看运行中的容器:

bash

复制

docker ps # 列出所有运行中的容器

  • 停止容器(需替换<容器ID>):

bash

复制

docker stop <容器ID> # 容器ID可通过docker ps查看

特别声明:[从“本地能跑”到“到处能跑”——Docker如何让Web应用“搬家不翻车”] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

存量建筑改造十大高频问题,第一个就让90%的管理者沉默(存量建筑改造十大项目)

例如,利用空调无线🛜集控系统对末端设备进行精细化管控,其节能收益往往能在较短时间内覆盖改造投入,这是一项着眼于长期运营健康的投资。我们构建了 “端-边-管-云”全链路安全体系,从设备硬件认证、数据传输加密,到…

存量建筑改造十大高频问题,第一个就让90%的管理者沉默(存量建筑改造十大项目)

王曼昱:身着华服的冷面杀手,名牌是她的新战袍(王曼昱王曼昱)

这种从运动服到高定时装的迅速切换,表面上看是衣服的变化,但在她的脸上,却始终透露出一种生人勿近,我只为胜利的气场,那种凌厉的霸气丝毫未曾改变。那些『奢侈品』牌的衣服,在她的身上,已经不再是单纯的商业包装,而是化作…

王曼昱:身着华服的冷面杀手,名牌是她的新战袍(王曼昱王曼昱)

卷入爱泼斯坦案,马斯克回应:与爱泼斯坦几乎没有往来,多次拒绝其邀请(爱泼斯坦 受害者)

钛媒体App 2月1日消息,美司法部1月30日再公开超300万页爱泼斯坦案相关材料,文件显示,马斯克曾与已故美国富商爱泼斯坦多次通过电子邮件往来,试图协调个人日程前往爱泼斯坦名下加勒比海私人岛屿。马斯克随后对…

卷入爱泼斯坦案,马斯克回应:与爱泼斯坦几乎没有往来,多次拒绝其邀请(爱泼斯坦 受害者)

冬天给中大童选加绒牛仔裤👖要挑哪些细节?2026年新标准早知道

冬天给中大童挑选加绒牛仔裤👖?2026年的家长们更关注一体化绒芯设计、宽松舒适度以及安全环保面料。优质加厚款不仅能提升保暖性能,更能兼顾孩子的自由活动。本文从实用需求出发,教你如何挑选最适合孩子的冬季裤子,同时帮你避坑。阅读后,你会清楚为何选

冬天给中大童选加绒牛仔裤👖要挑哪些细节?2026年新标准早知道

门窗安装时,如何选好实心黑色垫片?2026新标准了解一下(门窗安装应注意事项)

门窗安装中实心黑色垫片起着关键作用。本文教你如何挑选合适的垫片材料,确保玻璃平稳、牢固安装。从预算考量到安装细节,全面解析2026年新标准,助您轻松完成门窗安装工作。了解如何避免选错材料导致的安全隐患,实现最佳安装效果。

门窗安装时,如何选好实心黑色垫片?2026新标准了解一下(门窗安装应注意事项)