跳到主要内容

Docker 环境配置

本章将介绍如何在不同的操作系统上安装和配置 Docker。

安装 Docker

Windows 安装

系统要求

  • Windows 10/11 64位(专业版、企业版或教育版)
  • 启用 WSL 2(Windows Subsystem for Linux)
  • 启用 Hyper-V 和容器功能

安装步骤

  1. 启用 WSL 2
# 以管理员身份运行 PowerShell
wsl --install
  1. 下载 Docker Desktop

访问 Docker 官网 下载 Docker Desktop for Windows。

  1. 安装并启动

运行安装程序,按照提示完成安装。安装完成后重启计算机。

  1. 验证安装
docker --version
docker run hello-world

macOS 安装

系统要求

  • macOS 11 (Big Sur) 或更高版本
  • Apple Silicon (M1/M2/M3) 或 Intel 芯片

安装步骤

  1. 下载 Docker Desktop

访问 Docker 官网 下载对应芯片版本的 Docker Desktop。

  1. 安装应用

将 Docker.app 拖到 Applications 文件夹。

  1. 启动 Docker

打开 Docker Desktop 应用,等待启动完成。

  1. 验证安装
docker --version
docker run hello-world

Linux 安装

Ubuntu/Debian

# 更新软件包索引
sudo apt-get update

# 安装依赖
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release

# 添加 Docker 官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# 设置仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装 Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 验证安装
sudo docker run hello-world

CentOS/RHEL

# 安装必要工具
sudo yum install -y yum-utils

# 添加 Docker 仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装 Docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动 Docker
sudo systemctl start docker
sudo systemctl enable docker

# 验证安装
sudo docker run hello-world

配置 Docker

将用户添加到 docker 组

避免每次使用 docker 命令都需要 sudo:

# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER

# 重新登录或执行以下命令使更改生效
newgrp docker

配置镜像加速器

国内用户可以配置镜像加速器提高拉取速度:

Linux

# 创建或编辑 daemon.json
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn"
]
}
EOF

# 重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker

Docker Desktop (Windows/macOS)

打开 Docker Desktop 设置 -> Docker Engine,在 JSON 配置中添加:

{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn"
]
}

点击 "Apply & Restart" 重启 Docker。

配置 Docker 数据目录

默认情况下,Docker 数据存储在 /var/lib/docker。如果需要更改:

# 编辑 daemon.json
sudo vi /etc/docker/daemon.json

添加以下配置:

{
"data-root": "/mnt/docker-data"
}

然后重启 Docker:

sudo systemctl restart docker

配置日志驱动

限制容器日志大小,防止磁盘被占满:

{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}

Docker Desktop 配置

资源设置

在 Docker Desktop 设置中可以调整:

  • CPUs:分配给 Docker 的 CPU 核心数
  • Memory:分配给 Docker 的内存大小
  • Swap:交换空间大小
  • Disk image location:虚拟磁盘位置

启用 Kubernetes

Docker Desktop 内置了 Kubernetes 支持:

  1. 打开 Settings -> Kubernetes
  2. 勾选 "Enable Kubernetes"
  3. 点击 "Apply & Restart"

验证安装

检查版本

# 查看 Docker 版本
docker version

# 查看 Docker 信息
docker info

运行测试容器

# 拉取并运行 hello-world 镜像
docker run hello-world

# 运行交互式容器
docker run -it ubuntu bash

# 在容器中执行命令
root@container:/# cat /etc/os-release
root@container:/# exit

测试 Docker Compose

# 检查 Docker Compose 版本
docker compose version

常见问题

1. WSL 2 相关问题

问题:Windows 上提示 WSL 2 未安装

解决方案

# 启用 WSL
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

# 启用虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

# 重启计算机后,设置 WSL 2 为默认版本
wsl --set-default-version 2

2. 权限问题

问题:执行 docker 命令提示权限不足

解决方案

# 确保用户在 docker 组中
groups $USER

# 如果不在,添加用户到 docker 组
sudo usermod -aG docker $USER

# 重新登录

3. 网络问题

问题:无法拉取镜像

解决方案

  • 检查网络连接
  • 配置镜像加速器
  • 检查防火墙设置

4. 磁盘空间问题

问题:Docker 占用磁盘空间过大

解决方案

# 清理未使用的镜像、容器、网络和构建缓存
docker system prune -a

# 查看磁盘使用情况
docker system df

开发工具集成

VS Code 集成

  1. 安装 Docker 扩展
扩展 ID: ms-azuretools.vscode-docker
  1. 功能特性
    • 镜像和容器管理
    • Dockerfile 语法高亮和智能提示
    • docker-compose.yml 支持
    • 一键运行和调试容器

IDE 插件

  • IntelliJ IDEA:Docker Integration 插件
  • PyCharm:内置 Docker 支持
  • WebStorm:内置 Docker 支持

小结

本章我们学习了:

  1. 在 Windows、macOS 和 Linux 上安装 Docker
  2. 配置镜像加速器提高拉取速度
  3. 调整 Docker 资源配置
  4. 验证 Docker 安装
  5. 解决常见问题

练习

  1. 在你的操作系统上安装 Docker
  2. 运行 docker run hello-world 验证安装
  3. 配置镜像加速器
  4. 使用 docker info 查看 Docker 系统信息
  5. 安装 VS Code Docker 扩展并尝试管理容器