Docker - 2
约 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
