Docker 是现在最流行的容器引擎,把应用和它的依赖一起打包成镜像,一条命令就能在任何服务器上跑起来。不管是搭博客、跑数据库还是部署微服务,几乎所有服务器教程的第一步都是先装 Docker。这篇文章用最简单的方式,把 Ubuntu、Debian、CentOS 上安装 Docker 和 Docker Compose 的完整流程讲清楚,照抄就能用。
一、安装前的准备
系统要求:
- Ubuntu 20.04 / 22.04 / 24.04,Debian 11 / 12,CentOS 7 / 8,Rocky / AlmaLinux 8 / 9;
- 64 位系统,内核版本 3.10 以上(
uname -r查看); - 建议至少 1 核 1G 内存(跑多个容器建议 2G 以上)。
如果之前装过旧版 Docker,先卸载干净:
Ubuntu / Debian:
sudo apt-get remove docker docker-engine docker.io containerd runc
CentOS / Rocky:
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
二、一键脚本安装(推荐,最快)
Docker 官方提供了一键安装脚本,所有主流发行版通用,一条命令搞定:
curl -fsSL https://get.docker.com | sh
或者用国内可访问的镜像源加速:
curl -fsSL https://get.docker.com | sudo sh
脚本会自动检测系统,配置官方软件源并安装 Docker 引擎、containerd 和 Docker Compose 插件。安装完成后启动并设置开机自启:
sudo systemctl enable --now docker
验证是否装好:
docker version
docker compose version
能看到 Client 和 Server 两段版本号就说明安装成功了。
三、手动安装(软件源方式)
不想跑脚本的话,也可以手动添加软件源安装,适合网络受限或想用国内镜像源的场景。
Ubuntu / Debian
# 安装依赖
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
# 添加 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
# 添加软件源(Ubuntu 用 ubuntu,Debian 换成 debian)
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
CentOS / Rocky
# 添加软件源
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 启动并开机自启
sudo systemctl enable --now docker
四、配置国内镜像加速(必看)
Docker 默认从 Docker Hub 拉镜像,国内直连经常超时。配置镜像加速器后拉取速度能快几十倍。
编辑 Docker 配置文件:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.xuanyuan.me",
"https://hub.rat.dev"
]
}
EOF
重启 Docker 生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
验证加速器是否生效:
docker info | grep -A 5 "Registry Mirrors"
注意:加速器地址会不定期失效,失效后在 daemon.json 里换成新的可用地址再重启即可。也可以使用阿里云/腾讯云容器服务控制台里分配的专属加速地址(每个人的不同)。
五、免 sudo 直接运行 docker
默认情况下,运行 docker 命令需要 sudo,每次都要敲很麻烦。把当前用户加入 docker 组即可免 sudo:
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
重新登录 SSH 后,直接运行 docker ps 就不需要 sudo 了。
安全提醒:docker 组等同于 root 权限,只有自己信任的账号才加入这个组。
六、验证安装:跑第一个容器
运行官方测试镜像验证整个链路是否正常:
docker run hello-world
如果看到 "Hello from Docker!" 说明安装完全正常。
再跑一个 Nginx 试试真实业务:
docker run -d --name web -p 8080:80 nginx
浏览器访问 http://服务器IP:8080,能看到 Nginx 欢迎页就成功了。
七、Docker Compose 的安装与使用
新版 Docker 安装后自带 Compose 插件,直接可用:
docker compose version
如果系统里没有(比如只装了旧版 docker-ce),单独安装 Compose v2 插件:
# 下载二进制(替换成最新版本号)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose version
用 Compose 编排服务非常简单,写一个 docker-compose.yml:
services:
web:
image: nginx:latest
ports:
- "8080:80"
restart: always
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: yourpassword
volumes:
- dbdata:/var/lib/mysql
restart: always
volumes:
dbdata:
启动:
docker compose up -d
之后改代码只需要 docker compose up -d 重新部署,docker compose down 停止并清理。
八、Docker 服务与开机自启
# 查看状态
sudo systemctl status docker
# 设置开机自启(安装时默认已开启)
sudo systemctl enable docker
# 启动 / 停止 / 重启
sudo systemctl start docker
sudo systemctl stop docker
sudo systemctl restart docker
九、常用运维命令速查
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器(含已停止)
docker images # 查看本地镜像
docker pull 镜像名:标签 # 拉取镜像
docker logs -f 容器名 # 跟踪查看容器日志
docker exec -it 容器名 bash # 进入容器
docker stop 容器名 # 停止容器
docker rm 容器名 # 删除容器
docker rmi 镜像名 # 删除镜像
docker system df # 查看磁盘占用
docker system prune -a # 清理无用镜像和容器(慎用)
十、常见问题排查
1. 提示 permission denied while trying to connect to the Docker daemon
没有权限连接 Docker,按第五节把用户加入 docker 组,或临时用 sudo。
2. 提示 Cannot connect to the Docker daemon
Docker 服务没启动:sudo systemctl start docker,然后 systemctl status docker 看报错日志。
3. 拉镜像超时 / 卡住不动
没配置镜像加速器,按第四节配置后重启 Docker。
4. 重启服务器后容器全没了
创建容器时没加 --restart=always,或者 Docker 服务没设置开机自启。补上即可:
docker update --restart=always 容器名
5. 如何卸载 Docker
# Ubuntu / Debian
sudo apt-get purge docker-ce docker-ce-cli containerd.io
# CentOS / Rocky
sudo yum remove docker-ce docker-ce-cli containerd.io
# 清理数据目录(会删掉所有镜像和容器数据,慎用)
sudo rm -rf /var/lib/docker
总结
装 Docker 就三步:跑一键脚本(或配软件源安装)→ 配置镜像加速 → 把用户加入 docker 组。装完用 docker run hello-world 验证,再用 Compose 跑你的业务。Docker 装好后,之后部署任何应用基本都是"拉镜像 → 跑容器"两步,省下的时间远超安装本身。


