Docker 开发环境搭建完全指南

Docker 开发环境搭建完全指南

Someone Lv5

前言

Docker 是目前最流行的容器化平台,它让开发者能够将应用及其依赖打包到一个轻量级、可移植的容器中,从而实现”一次构建,随处运行”。本文将详细介绍如何在主流操作系统上搭建 Docker 开发环境,从安装到基本使用,帮助读者快速上手。

一、Docker 核心概念

在开始安装之前,有必要了解几个核心概念:

  • 镜像(Image):一个只读模板,包含创建容器所需的指令,类似于虚拟机快照
  • 容器(Container):镜像的可运行实例,是一个隔离的进程
  • Dockerfile:用于构建镜像的文本文件,包含一系列指令
  • 仓库(Repository):存储和分发镜像的地方,如 Docker Hub
  • 卷(Volume):持久化容器数据的机制

二、安装 Docker

2.1 在 Linux 上安装(以 Ubuntu 22.04/24.04 为例)

步骤一:卸载旧版本

1
sudo apt remove docker docker-engine docker.io containerd runc

步骤二:安装依赖包

1
2
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

步骤三:添加 Docker 官方 GPG 密钥

1
2
3
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

步骤四:添加 Docker APT 源

1
2
3
4
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

1
2
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

步骤六:启动 Docker 并设置开机自启

1
2
sudo systemctl enable docker
sudo systemctl start docker

步骤七:验证安装

1
sudo docker run hello-world

如果看到欢迎信息,说明安装成功。

步骤八:将当前用户加入 docker 组(避免每次使用 sudo)

1
2
sudo usermod -aG docker $USER
newgrp docker

2.2 在 Windows 上安装(Windows 10/11)

前提条件

  • Windows 10 22H2 或 Windows 11(64 位)
  • 启用 WSL 2(Windows Subsystem for Linux 2)
  • 已安装 Hyper-V(企业版)或使用 WSL 2 后端

安装步骤

  1. 前往 Docker Desktop for Windows 下载安装包
  2. 双击运行安装程序,勾选”Use WSL 2 instead of Hyper-V”
  3. 安装完成后重启系统
  4. 启动 Docker Desktop,按照向导完成初始配置
  5. 打开 PowerShell 或 CMD 验证:
1
2
docker --version
docker run hello-world

配置 WSL 2 集成(可选):

安装 Docker Desktop 后,可以在 Settings → Resources → WSL Integration 中选择需要集成 Docker 的 WSL 发行版,这样在 WSL 终端中也能直接使用 Docker 命令。

2.3 在 macOS 上安装

Intel Mac

1
2
3
4
# 使用 Homebrew 安装
brew install --cask docker

# 或者直接从 Docker 官网下载 Docker Desktop for Mac (Intel Chip)

Apple Silicon (M1/M2/M3)

1
2
3
4
# 使用 Homebrew 安装
brew install --cask docker

# Docker Desktop 会自动检测架构并安装 ARM64 版本

安装完成后启动 Docker Desktop,状态栏出现鲸鱼图标即表示运行正常。

三、安装 Docker Compose

Docker Compose 用于定义和运行多容器 Docker 应用。从 Docker Desktop 和 Docker Engine 24+ 开始,Compose V2 已内置为 docker compose 命令。

独立安装 Compose V2(如需要)

平台安装命令
Linux (x86_64)sudo curl -SL https://github.com/docker/compose/releases/download/v2.29.0/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
Linux (ARM64)sudo curl -SL https://github.com/docker/compose/releases/download/v2.29.0/docker-compose-linux-aarch64 -o /usr/local/lib/docker/cli-plugins/docker-compose
macOS / Windows已集成在 Docker Desktop 中,无需单独安装
1
2
3
4
5
# 设置可执行权限
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

# 验证安装
docker compose version

四、Docker 基础配置

4.1 配置镜像加速器

在国内使用 Docker Hub 拉取镜像时,建议配置镜像加速器以提高下载速度。

编辑 /etc/docker/daemon.json

1
2
3
4
5
6
7
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.nju.edu.cn"
]
}

重启 Docker 使配置生效:

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

4.2 配置 Docker 存储驱动

Docker 默认使用 overlay2 存储驱动,这是目前推荐的方案。确认方法:

1
docker info | grep "Storage Driver"

输出应显示 Storage Driver: overlay2

4.3 修改 Docker 数据存储目录

如果系统盘空间不足,可以将 Docker 数据迁移到其他分区:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 停止 Docker 服务
sudo systemctl stop docker

# 创建目标目录
sudo mkdir -p /data/docker

# 迁移数据
sudo rsync -aP /var/lib/docker/ /data/docker/

# 修改 Docker 配置
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"data-root": "/data/docker"
}
EOF

# 重启 Docker
sudo systemctl start docker

# 验证
docker info | grep "Docker Root Dir"

五、Docker 常用命令速查

命令说明
docker pull <镜像名>拉取镜像
docker images查看本地镜像列表
docker run -d --name myapp <镜像名>后台运行容器
docker ps -a查看所有容器(含已停止的)
docker exec -it <容器名> bash进入容器内部
docker logs -f <容器名>查看容器日志
docker stop <容器名>停止容器
docker rm <容器名>删除容器
docker rmi <镜像名>删除镜像
docker system prune -a清理所有未使用的镜像、容器和数据

六、实战:用 Docker Compose 搭建 Nginx + PHP + MySQL 开发环境

创建一个项目目录并编写 docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
version: '3.8'

services:
nginx:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./www:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
networks:
- webnet

php:
image: php:8.2-fpm
volumes:
- ./www:/var/www/html
networks:
- webnet

mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root123
MYSQL_DATABASE: myapp
MYSQL_USER: dev
MYSQL_PASSWORD: dev123
volumes:
- db_data:/var/lib/mysql
networks:
- webnet

volumes:
db_data:

networks:
webnet:

在同目录下创建 nginx/default.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server {
listen 80;
server_name localhost;
root /var/www/html;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

启动服务:

1
docker compose up -d

访问 http://localhost:8080 即可看到 PHP 环境已正常运行。

七、常见问题排查

7.1 Docker 无法启动

1
2
3
4
5
# 查看 Docker 守护进程日志
sudo journalctl -u docker.service

# 检查 Docker 配置语法
dockerd --validate

7.2 端口冲突

如果提示端口已被占用,使用以下命令查找占用进程:

1
2
3
sudo lsof -i :8080
# 或
sudo netstat -tulpn | grep 8080

7.3 磁盘空间不足

1
2
3
4
5
# 查看 Docker 磁盘使用情况
docker system df

# 一键清理
docker system prune -a --volumes

八、最佳实践建议

  1. 使用特定版本标签:在生产环境中避免使用 latest 标签,应指定具体版本号
  2. 最小化镜像大小:优先使用 alpine 等精简基础镜像,减少攻击面
  3. 使用 .dockerignore:排除不必要的文件,加快构建速度
  4. 不要以 root 运行容器:在 Dockerfile 中创建普通用户运行应用
  5. 合理使用多阶段构建:将构建环境和运行环境分离,减小最终镜像体积
  6. 定期更新基础镜像:及时获取安全补丁

结语

通过本文的引导,你应该已经成功搭建了 Docker 开发环境,并掌握了基本的使用方法。Docker 是现代软件开发中不可或缺的工具,熟练掌握它将大幅提升你的开发效率和部署能力。建议从简单项目开始实践,逐步深入了解 Docker 网络的更高级用法。

本文由AI辅助生成,内容仅供参考

  • 标题: Docker 开发环境搭建完全指南
  • 作者: Someone
  • 创建于 : 2026-06-07 13:27:00
  • 更新于 : 2026-06-18 08:39:57
  • 链接: https://demo-blog.qusite.cn/2026-06-07-docker-env-setup/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。