构建和更新 Docker 容器:面向初学者的实用动手指南
Source: Dev.to
介绍
在当今快速发展的开发环境中,一致性和可移植性至关重要。应用程序必须能够在不同的机器、环境,甚至云端可靠运行。Docker 通过将应用程序及其依赖打包成 容器,确保它在任何地方的行为都保持一致。
在本实战指南中,你将学习如何将一个简单的 Node.js “Todo List” 应用容器化。你不需要事先了解 Node.js——重点是理解 Docker 如何构建、打包和运行应用。
完成本教程后,你将能够:
- 使用 Dockerfile 构建 Docker 镜像
- 在容器中运行你的应用
- 将应用暴露到本地主机
- 理解镜像、容器和层之间的交互
前置条件
确保已安装以下工具:
- Docker Desktop(最新版本)
- Git(用于克隆示例应用)
- VS Code 或其他代码编辑器
这些工具可以帮助你顺畅地构建和运行容器。
步骤 1:准备应用
在 VS Code 中打开一个新文件夹,并命名为 container。

在该文件夹中打开终端。

克隆示例 Node.js 应用:
git clone https://github.com/docker/getting-started-app.git
你会看到如下文件结构:
getting-started-app/
│── .dockerignore
│── package.json
│── README.md
│── spec/
│── src/
└── yarn.lock

这就是你即将容器化的源代码。
步骤 2:创建 Dockerfile
在 getting-started-app 文件夹内,创建一个名为 Dockerfile 的文件并添加以下内容:

# syntax=docker/dockerfile:1
FROM node:lts-alpine
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
EXPOSE 3000
说明
- FROM – 选择一个轻量级的 Node.js 基础镜像
- WORKDIR – 设置容器内的工作目录
- COPY – 将你的源代码复制到容器中
- RUN – 安装生产环境依赖
- CMD – 定义启动应用的命令
- EXPOSE – 声明应用监听的端口
步骤 3:构建 Docker 镜像
切换到项目文件夹:
cd /path/to/getting-started-app

构建镜像:
docker build -t getting-started .

发生了什么:
- Docker 下载 Node.js 基础镜像(如果本地不存在)
- 将你的应用文件复制进镜像
- 安装依赖
- 将所有内容打包成名为
getting-started的 Docker 镜像
步骤 4:运行容器
启动容器:
docker run -d -p 127.0.0.1:3000:3000 getting-started
参数说明
-d– 让容器在后台运行(分离模式)-p HOST:CONTAINER– 将容器的 3000 端口映射到本地主机的 3000 端口
在浏览器中访问 http://127.0.0.1:3000。你的 Todo List 应用应该已经运行。添加任务、标记完成,观察一切如何在容器内部工作。
步骤 5:验证运行中的容器
检查哪些容器处于活动状态:
docker ps
你会看到容器 ID、镜像名称、端口映射和状态——这表明你的应用已在运行。
步骤 6:更新应用
假设你想把 “empty text” 提示改为:
You have no todo items yet! Add one above!
编辑 src/static/js/app.js,将第 56 行改为:
- No items yet! Add one above!
+ You have no todo items yet! Add one above!

使用更新后的代码重新构建 Docker 镜像:
docker build -t getting-started .
使用新镜像启动一个容器:
docker run -d -p 127.0.0.1:3000:3000 getting-started
现在,你的更改已经在运行中的应用中生效。