适用系统:Ubuntu 22.04/24.04、Debian 12、CentOS 9 Stream、Rocky Linux 9、AlmaLinux 9、openEuler 22.03、Amazon Linux 2、Arch Linux
1. 安装 Docker Engine(官方仓库)
以下脚本可直接复制到终端执行。所有命令均以 root 或 sudo 身份运行。
1.1 一键脚本(Ubuntu / Debian)
# 更新索引并安装依赖
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
# 导入 Docker 官方 GPG Key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 写入仓库源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') \
$(lsb_release -cs) 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
# 启动并设为开机自启
sudo systemctl enable --now docker1.2 一键脚本(CentOS / Rocky / Alma / openEuler)
# 安装 yum-utils
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 docker1.3 Amazon Linux 2
sudo amazon-linux-extras install docker -y
sudo systemctl enable --now docker1.4 Arch Linux
sudo pacman -Syu docker docker-compose
sudo systemctl enable --now docker2. 验证安装
docker version # 查看客户端/服务端版本
docker run --rm hello-world正常输出 Hello from Docker! 即安装成功。
3. 非 root 用户运行 Docker(可选但推荐)
sudo usermod -aG docker $USER
newgrp docker # 立即生效4. 配置国内镜像加速器(解决拉取慢的问题)
4.1 使用 /etc/docker/daemon.json
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
"https://docker.m.daocloud.io",
"https://dockerproxy.com"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker5. 使用 Docker Compose 部署示例应用
示例:部署一个 Nginx + MariaDB + WordPress 博客系统。
5.1 创建项目目录
mkdir -p ~/pigyun-demo && cd ~/pigyun-demo5.2 编写 docker-compose.yml
version: "3.9"
services:
db:
image: mariadb:11
restart: always
environment:
MYSQL_ROOT_PASSWORD: pigyun_root
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: wppass
volumes:
- db_data:/var/lib/mysql
wordpress:
image: wordpress:6.6-php8.2-apache
restart: always
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: wppass
volumes:
- wp_data:/var/www/html
depends_on:
- db
volumes:
db_data:
wp_data:5.3 启动
docker compose up -d # 或 docker-compose up -d5.4 访问
浏览器打开 http://<服务器IP>:8080 即可开始 WordPress 初始化。
6. 常用运维命令
# 查看运行容器
docker ps -a
# 查看实时日志
docker logs -f <容器ID>
# 进入容器
docker exec -it <容器ID> /bin/bash
# 停止/启动/重启
docker compose stop
docker compose start
docker compose restart
# 更新镜像并重建
docker compose pull
docker compose up -d --force-recreate7. 卸载 Docker(如需)
Ubuntu / Debian
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker /var/lib/containerdCentOS / Rocky / Alma
sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker /var/lib/containerd8. 故障排查速查表
| 现象 | 解决思路 |
|---|---|
| 拉取镜像超时 | 检查加速器配置;确认防火墙放行 443 端口;使用 docker pull --platform linux/amd64 |
| 非 root 用户无法运行 docker | 确认已执行 usermod -aG docker 并重新登录 |
docker-compose: command not found | 新版 Engine 已内置 docker compose(空格);老版本需安装 docker-compose-plugin |
| SELinux 阻止容器访问文件 | 在 CentOS/Rocky 上可临时 setenforce 0 或配置 SELinux 策略 |
9. 相关链接
- 官方安装文档:https://docs.docker.com/engine/install/
- Compose 规范:https://docs.docker.com/compose/compose-file/