跳至主要內容

Docker - 2

code中间件Docker约 297 字小于 1 分钟

Docker

分析

Docker 镜像会包含应用运行所需的所有系统依赖

一个应用的 Docker 镜像会包含:

  • 应用代码
  • 运行环境(如 Node.js、JRE、Python)
  • 所有系统依赖库
  • 必要的工具(shell、包管理器等)

比如:

FROM node:18-alpine

WORKDIR /app
COPY package*.json ./
RUN npm install --production  # 安装 npm 依赖(包括原生模块)
COPY . .

CMD ["node", "server.js"]

会存在:

node:18-alpine = Alpine Linux 最小系统 + Node.js 18 + npm

这就是为什么镜像比单纯的应用代码大得多(几十 MB 到几百 MB)

镜像的文件系统

镜像的文件系统实际存储在 Docker 的存储驱动中

但你不应该直接操作这个路径,因为:

  • 路径由 Docker 内部管理
  • 不同存储驱动位置不同
  • 可能随时变化
  • 正确访问容器内文件的方式
# 1. 进入容器查看
docker exec -it <container_id> sh
cd /app

# 2. 复制文件出来
docker cp <container_id>:/app/server.js ./server.js

# 3. 挂载卷(开发时用)
docker run -v $(pwd):/app node:18-alpine sh
# 这样宿主机的当前目录就映射到容器的/app
上次编辑于: