Docker 安装教程:Ubuntu、CentOS 一行命令安装 Docker 与 Docker Compose


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 装好后,之后部署任何应用基本都是"拉镜像 → 跑容器"两步,省下的时间远超安装本身。


手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

WordPress 加速优化实战:缓存、CDN、PHP-FPM 调优,让网站秒开

Portainer 安装与使用教程:Docker 可视化管理面板,容器/镜像/网络/日志一屏管完

评 论
更换验证码