Docker 容器化技术入门

什么是 Docker?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。容器完全使用沙箱机制,相互之间不会有任何接口。

"Build, Ship, and Run Any App, Anywhere" — Docker 的核心理念

核心概念

1. 镜像(Image)

镜像是一个只读模板,用于创建 Docker 容器。可以理解为操作系统 + 应用程序 + 依赖的完整快照。

2. 容器(Container)

容器是镜像的运行实例,可以被启动、停止、删除。每个容器都是相互隔离的。

3. Dockerfile

Dockerfile 是一个文本文件,包含用于构建镜像的指令。以下是一个简单的示例:

# 使用 Node.js 官方镜像作为基础
FROM node:18-alpine

# 设置工作目录
WORKDIR /app

# 复制 package.json
COPY package*.json ./

# 安装依赖
RUN npm install

# 复制源代码
COPY . .

# 暴露端口
EXPOSE 3000

# 启动命令
CMD ["npm", "start"]

常用命令

命令 说明
docker pull <image> 下载镜像
docker build -t <name> . 构建镜像
docker run -d -p 8080:80 <image> 运行容器
docker ps 查看运行中的容器
docker exec -it <container> bash 进入容器

实际应用场景

Docker Compose 示例

对于多容器应用,可以使用 Docker Compose 来管理:

version: '3.8'
services:
  web:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: example

总结

Docker 极大地简化了应用的打包、分发和部署流程。掌握 Docker 是现代开发者必备的技能之一。建议从简单的容器开始实践,逐步深入理解容器化技术。

标签: Docker DevOps 容器化