Docker全面学习指南(2025最新版)

Docker全面学习指南

2025最新版


一、Docker概述

1.1 容器技术演进
  • 虚拟化技术发展:物理机 → 虚拟机 → 容器
  • LXC(Linux Containers)技术基础
  • Docker诞生背景(2013年DotCloud公司开源)
1.2 Docker核心组件
+-------------------+
| Docker Client     |
+-------------------+
        |
        v
+-------------------+
| Docker Daemon     |
+-------------------+
        |
        v
+-------------------+
| Containers        |    +-------------------+
| (运行时实例)      |<---| Images            |
+-------------------+    | (只读模板)        |
                         +-------------------+
1.3 Docker技术优势
  • 环境一致性保证
  • 资源利用率提升(对比虚拟机)
  • 秒级启动/停止
  • 微服务架构最佳伴侣
  • DevOps流水线核心组件

二、Docker环境搭建

2.1 主流平台安装
# Linux(Ubuntu示例)
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# Windows
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Install-Module DockerMsftProvider -Force
Install-Package Docker -ProviderName DockerMsftProvider

# macOS
brew install --cask docker
2.2 配置验证
docker --version           # 版本验证
docker run hello-world     # 运行测试容器
docker info                # 系统信息查看
2.3 国内加速配置
// /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "https://docker.mirrors.ustc.edu.cn"
  ],
  "insecure-registries": [],
  "experimental": false
}

三、Docker核心操作

3.1 镜像管理
docker search nginx        # 搜索镜像
docker pull nginx:1.23     # 拉取指定版本
docker image ls            # 列出本地镜像
docker image prune         # 清理无用镜像
3.2 容器生命周期
docker run -d -p 80:80 --name web nginx  # 启动容器
docker exec -it web bash                 # 进入容器
docker stop web                          # 停止容器
docker start web                         # 启动已停止容器
docker rm -f web                         # 强制删除容器
3.3 数据持久化
# 卷管理
docker volume create myvol
docker run -v myvol:/data ...

# 绑定挂载
docker run -v /host/path:/container/path ...

四、Dockerfile深度解析

4.1 最佳实践模板
# 阶段1:构建环境
FROM node:18-alpine as builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

# 阶段2:生产环境
FROM nginx:1.23-alpine
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
4.2 高级优化技巧
  • 多阶段构建减少镜像体积
  • 使用.dockerignore文件
  • 镜像层合并优化
  • 安全扫描工具集成
docker scan <image-name>  # 安全扫描

五、Docker网络架构

5.1 网络模式对比
模式说明适用场景
bridge默认NAT网络(docker0)单主机容器通信
host共享主机网络栈高性能网络需求
overlay跨主机容器网络Swarm集群
macvlan直接分配MAC地址传统网络集成
5.2 自定义网络
docker network create --driver bridge mynet
docker run --network=mynet ...

六、Docker Compose

6.1 编排文件示例
version: '3.8'

services:
  web:
    image: nginx:1.23
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
    networks:
      - frontend

  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      - pgdata:/var/lib/postgresql/data
    networks:
      - backend

volumes:
  pgdata:

networks:
  frontend:
  backend:
6.2 常用命令
docker compose up -d       # 启动服务
docker compose down -v     # 停止并清理
docker compose logs -f     # 实时日志查看

七、容器安全与优化

7.1 安全实践
  • 非root用户运行容器
USER 1000:1000
  • 只读文件系统
docker run --read-only ...
  • 资源限制
docker run -m 512m --cpus 1.5 ...
7.2 性能监控
docker stats                 # 实时资源监控
docker top <container>      # 进程查看
docker system df            # 磁盘使用统计

八、生产环境实践

8.1 CI/CD集成
# GitHub Actions示例
name: Build and Push

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Build Docker image
      run: docker build -t myapp:${{ github.sha }} .
    - name: Push to Registry
      run: |
        echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin
        docker push myapp:${{ github.sha }}
8.2 云平台集成
  • AWS ECS/EKS
  • Azure ACI
  • Google Cloud Run
  • 阿里云ACK

九、学习路线建议

  1. 基础阶段(1周):

    • 容器基本操作
    • Dockerfile编写
    • 单机容器管理
  2. 进阶阶段(2周):

    • 网络与存储配置
    • Docker Compose编排
    • 镜像优化技巧
  3. 高级阶段(3周+):

    • 容器安全加固
    • Kubernetes集成
    • 服务网格(Service Mesh)
    • 云原生架构设计

十、学习资源推荐

  1. 官方文档:https://docs.docker.com/
  2. 实践平台:Play with Docker(https://labs.play-with-docker.com/)
  3. 认证体系:Docker Certified Associate(DCA)
  4. 经典书籍:
    • 《Docker Deep Dive》(最新第3版)
    • 《Kubernetes in Action》

本指南持续更新,建议配合实际操作练习。建议学习路径:先掌握单机容器操作 → 学习Docker Compose → 深入Dockerfile优化 → 最后研究容器编排和云原生架构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值