Docker 与 Docker Compose 全平台安装指南
概述
Docker 是个开源的容器引擎,它最香的一点就是”一次打包,到处运行”——把你的应用和它依赖的一堆东西打包成一个标准的”镜像”,丢到任何装了 Docker 的平台上(Linux、Windows、MacOS 都行)都能跑,再也不用担心”我本地明明能跑,上了线就崩”的破事。
而 Docker Compose 是 Docker 的”多容器管理搭档”,用一个配置文件就能把几个关联的容器(比如”Web 服务 + 数据库 + 缓存”)一起定义好,一条命令同时启动或停掉,部署多容器应用省事多了。
这篇文章把 Windows、MacOS、Ubuntu、CentOS 这四个最常用的平台都覆盖到了,Docker 和 Docker Compose 的安装步骤全给齐,另外还捎带了”镜像源加速""免 sudo 用 Docker""快捷键冲突解决”这些实用配置。新手照着自己平台对着操作就行,很快能搭起一套容器化的开发环境。
一、Docker 安装:分平台操作指南
Docker 在不同平台上装法差别挺大:Windows/MacOS 给的是带图形界面的安装包,基本点几下就完事;Linux(Ubuntu/CentOS)则要靠包管理器或者官方脚本。下面挨个平台说清楚。
1. Windows & MacOS:可视化安装(最简单)
Windows 和 MacOS 用户直接去官网下 Docker 社区版(CE)就行,安装过程不用敲任何命令,而且默认就把 Docker Compose 一起装好了(后面不用再单独装)。
操作步骤:
- 下载安装包:去 Docker 官网下载页,按自己的系统选 “Docker Desktop for Windows” 或 “Docker Desktop for Mac”(社区版 CE 免费,企业版 EE 要钱,平时开发用 CE 就够了);
- 安装 Docker:
- Windows:双击安装包,按提示把”使用 WSL 2 而不是 Hyper-V”勾上(WSL 2 性能更好,前提是你得先启用 WSL 功能),等装完启动 Docker;
- MacOS:把下载的 .dmg 文件拖进应用程序,启动后状态栏出现那只鲸鱼图标就说明起来了;
- 验证安装:打开终端(Windows 用 PowerShell 或 WSL 终端,MacOS 用自带终端),跑一下
docker --version,要是输出类似Docker version 20.10.x, build xxx这种,就说明装好了。
注意事项:
- Windows 这边要求:Windows 10 专业版 / 企业版(能跑 Hyper-V),或者 Windows 10 家庭版(得先启用 WSL 2);
- MacOS 这边要求:系统是 MacOS 10.15+(Catalina 及以上),要是 M1/M2 芯片得下适配 ARM 架构的安装包。
2. Ubuntu 系统:APT 包管理器安装(Debian 系通用)
Ubuntu 官方源里就带着 Docker 包,直接用 apt 装就行,步骤很简单,新手友好。
操作步骤:
# 1. 更新系统包索引(确保获取最新软件信息)
sudo apt update
# 2. 安装 Docker CE(社区版)
sudo apt install -y docker.io
# 3. 验证 Docker 是否安装成功(输出版本信息即正常)
docker --version
3. CentOS 系统:官方脚本安装(RHEL 系通用)
CentOS 官方源里的 Docker 版本偏旧,所以推荐用 Docker 官网的脚本装,顺便走阿里云镜像加速,免得下得慢。
操作步骤:
# 1. 下载 Docker 官方安装脚本(保存为 get-docker.sh)
curl -fsSL get.docker.com -o get-docker.sh
# 2. 执行脚本安装,指定阿里云镜像(加速下载)
sudo sh get-docker.sh --mirror Aliyun
# 3. 验证安装(输出版本信息即正常)
docker --version
二、Docker 基础配置:免 sudo + 镜像加速 + 快捷键优化
装完之后还有三件事得做,能让你用 Docker 舒服很多:免 sudo(不用每次敲命令都输密码)、配镜像源(拉镜像更快)、改快捷键(解决和命令行冲突)。这三步算是提升体验的关键。
1. 免 sudo 使用 Docker(所有 Linux 系统通用)
默认情况下 Docker 命令都得加 sudo,因为它那个守护进程是归 root 管的。解决办法是建一个 docker 用户组,把当前用户加进去,之后就不用 sudo 了。
# 1. 创建 docker 用户组(若已存在则忽略)
sudo groupadd docker
# 2. 将当前用户加入 docker 组($USER 表示当前登录用户)
sudo usermod -aG docker $USER
# 3. 重启 Docker 服务(使权限配置生效)
sudo systemctl restart docker
生效方式:
- 配完之后得 退出终端重新登录(或者执行
newgrp docker临时生效),然后跑一下docker ps,只要不报错就说明免 sudo 成了。
2. 配置镜像源:加速拉取 Docker 镜像
Docker 默认是从官方仓库(Docker Hub)拉镜像的,国内访问速度你懂的,很慢。所以得配个国内镜像源(比如中科大、阿里云),拉起来就快多了。
操作步骤:
# 1. 创建/修改 Docker 守护进程配置文件(daemon.json)
# 中科大镜像源:https://docker.mirrors.ustc.edu.cn
# 阿里云镜像源:需先注册阿里云账号,在“容器镜像服务”中获取专属地址(更稳定)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
# 2. 重新加载 Docker 守护进程配置
sudo systemctl daemon-reload
# 3. 重启 Docker 服务(使镜像源配置生效)
sudo systemctl restart docker
# 4. 验证配置(输出包含镜像源地址即正常)
docker info | grep "Registry Mirrors"
阿里云镜像源怎么拿:
- 登录阿里云控制台;
- 进 “容器镜像服务 → 镜像工具 → 镜像加速器”,把给你的专属加速地址(类似
https://abc123.mirror.aliyuncs.com这种)复制下来,把上面命令里中科大的地址替换掉就行。
3. 修改快捷键:解决 Ctrl+P 冲突
Docker 默认”后台运行容器”的快捷键是 Ctrl+P,可在终端里这跟”上一条命令”的快捷键撞车了(Bash/Zsh 里 Ctrl+P 是翻历史命令)。所以把它改成 Ctrl+Q 再按 Q(连按两次 Q),就不冲突了。
# 1. 创建当前用户的 Docker 配置目录(若不存在)
mkdir -p ~/.docker
# 2. 写入快捷键配置(detachKeys 表示“后台运行”快捷键)
tee ~/.docker/config.json <<-'EOF'
{
"detachKeys": "ctrl-q,q"
}
EOF
# 3. 重启 Docker 服务(使快捷键配置生效)
sudo systemctl restart docker
怎么用:
- 启动容器时加
-d就是后台跑(比如docker run -d nginx);或者在交互模式(docker run -it nginx)里按 Ctrl+Q 再按 Q,也能把容器切到后台,同时终端控制权还留在你手里。
4. 设置 Docker 开机自启(Linux 系统通用)
服务器要是重启了,总不能每次都手动起 Docker,所以干脆设成开机自启:
# 1. 启用 Docker 开机自启
sudo systemctl enable docker
# 2. 验证自启配置(输出 enabled 即正常)
sudo systemctl is-enabled docker
三、Docker Compose 安装:分平台操作
Docker Compose 是管多容器应用的。Windows/MacOS 装 Docker 的时候就已经自带了,只有 Linux 需要单独装。
1. Windows & MacOS:无需额外安装
Windows 和 MacOS 的 Docker Desktop 里已经内置了 Docker Compose,装完 Docker 直接验证就行:
# 验证 Docker Compose 版本(输出类似 docker-compose version 1.29.x, build xxx 即正常)
docker-compose --version
2. Ubuntu 系统:APT 安装(简单快捷)
Ubuntu 官方源里就有 Docker Compose 包,直接 apt 装:
# 安装 Docker Compose
sudo apt install -y docker-compose
# 验证安装
docker-compose --version
3. CentOS 系统:脚本下载安装(指定版本)
CentOS 官方源里没有 Docker Compose,得从 GitHub 下二进制文件来装(这里以 1.25.4 版本为例,你想装更新的版本把版本号换掉就行)。
# 1. 下载 Docker Compose 二进制文件(适配当前系统架构)
# `uname -s` 获取系统(如 Linux),`uname -m` 获取架构(如 x86_64)
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o ~/docker-compose
# 2. 移动文件到系统命令路径(使 docker-compose 命令全局可用)
sudo mv ~/docker-compose /usr/bin/
# 3. 赋予执行权限(否则无法运行)
sudo chmod +x /usr/bin/docker-compose
# 4. 验证安装
docker-compose --version
升级版本:
要是想装更新的版本,把命令里的 1.25.4 换成最新的版本号(比如 2.20.3),重复上面步骤即可。
四、最后验证:确认 Docker 和 Docker Compose 都正常
装完、配完之后,跑几条简单命令看看是不是都正常:
1. 验证 Docker 功能
# 1. 拉取官方 nginx 镜像(测试镜像拉取功能)
docker pull nginx
# 2. 启动 nginx 容器(测试容器运行功能)
docker run -d -p 8080:80 --name test-nginx nginx
# 3. 查看容器状态(输出 test-nginx 且状态为 Up 即正常)
docker ps
# 4. 访问 nginx 服务(测试端口映射)
curl http://localhost:8080
# 若输出 nginx 欢迎页 HTML 代码,说明 Docker 网络配置正常
# 5. 停止并删除测试容器(清理环境)
docker stop test-nginx && docker rm test-nginx
2. 验证 Docker Compose 功能
建一个简单的 docker-compose.yml 文件,测一下多容器管理:
# 1. 创建测试目录并进入
mkdir -p ~/docker-test && cd ~/docker-test
# 2. 编写 docker-compose.yml(定义 nginx + redis 两个容器)
tee docker-compose.yml <<-'EOF'
version: '3'
services:
nginx:
image: nginx
ports:
- "8080:80"
redis:
image: redis
ports:
- "6379:6379"
EOF
# 3. 启动所有容器(-d 后台运行)
docker-compose up -d
# 4. 查看容器状态(两个容器均为 Up 状态即正常)
docker-compose ps
# 5. 停止并删除所有容器(清理环境)
docker-compose down
五、总结
这篇文章把 Docker 和 Docker Compose 在各平台的安装、核心配置都讲了一遍,关键要点先列个表:
| 平台 | Docker 安装方式 | Docker Compose 安装方式 | 核心配置(必做) |
|---|---|---|---|
| Windows | 下载 Docker Desktop 安装包 | 内置,无需额外安装 | 启用 WSL 2(家庭版)、配置镜像源 |
| MacOS | 下载 Docker Desktop 安装包 | 内置,无需额外安装 | 适配芯片架构(Intel/ARM)、配置镜像源 |
| Ubuntu | sudo apt install -y docker.io | sudo apt install -y docker-compose | 免 sudo 配置、镜像加速、开机自启 |
| CentOS | 官方脚本 + 阿里云镜像 | 下载二进制文件 + 赋予执行权限 | 免 sudo 配置、镜像加速、开机自启 |
按上面这些步骤走完,你就能快速搭起一套稳定、好使的 Docker 环境了。往后还能在这个基础上学容器编排(比如 Docker Swarm)、CI/CD 集成(比如 Jenkins + Docker)这些进阶玩法,把容器技术的优势彻底发挥出来。