🔍搜索⌘K

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 一起装好了(后面不用再单独装)。

操作步骤:

  1. 下载安装包:去 Docker 官网下载页,按自己的系统选 “Docker Desktop for Windows” 或 “Docker Desktop for Mac”(社区版 CE 免费,企业版 EE 要钱,平时开发用 CE 就够了);
  2. 安装 Docker:
    • Windows:双击安装包,按提示把”使用 WSL 2 而不是 Hyper-V”勾上(WSL 2 性能更好,前提是你得先启用 WSL 功能),等装完启动 Docker;
    • MacOS:把下载的 .dmg 文件拖进应用程序,启动后状态栏出现那只鲸鱼图标就说明起来了;
  3. 验证安装:打开终端(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"

阿里云镜像源怎么拿:

  1. 登录阿里云控制台;
  2. 进 “容器镜像服务 → 镜像工具 → 镜像加速器”,把给你的专属加速地址(类似 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)、配置镜像源
Ubuntusudo apt install -y docker.iosudo apt install -y docker-compose免 sudo 配置、镜像加速、开机自启
CentOS官方脚本 + 阿里云镜像下载二进制文件 + 赋予执行权限免 sudo 配置、镜像加速、开机自启

按上面这些步骤走完,你就能快速搭起一套稳定、好使的 Docker 环境了。往后还能在这个基础上学容器编排(比如 Docker Swarm)、CI/CD 集成(比如 Jenkins + Docker)这些进阶玩法,把容器技术的优势彻底发挥出来。