在 Ubuntu 上安装 Docker 和 Docker Compose 是一个常见的操作。以下是基于最新稳定版本的详细步骤(适用于 Ubuntu 18.04 及以上版本,包括 20.04, 22.04, 24.04)。


第一步:安装 Docker

1. 更新系统包列表

bash

深色版本

sudo apt update

2. 安装必要的依赖包

bash

深色版本

sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release

3. 添加 Docker 的官方 GPG 密钥

bash

深色版本

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg

4. 添加 Docker 的 APT 软件源

bash

深色版本

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
注意$(lsb_release -cs) 会自动获取你的 Ubuntu 版本代号(如 jammy, focal, noble 等)。

5. 更新 APT 包索引

bash

深色版本

sudo apt update

6. 安装 Docker Engine

bash

深色版本

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
这会安装 Docker 引擎、CLI、containerd 和官方插件(包括 docker-compose 插件)。

7. 验证 Docker 是否安装成功

bash

深色版本

sudo docker --version

输出应类似:

深色版本

Docker version 24.0.7, build afdd53b

8. (可选)让当前用户无需 sudo 使用 Docker

bash

深色版本

sudo usermod -aG docker $USER
注意:执行后需重新登录或重启终端,使用户组变更生效。

第二步:安装 Docker Compose(如果未通过插件安装)

从 Docker 20.10+ 开始,推荐使用 docker-compose-plugin,它允许你直接使用 docker compose 命令(注意中间是空格,不是短横线)。

✅ 推荐方式:使用插件(已安装)

bash

深色版本

docker compose version

如果上一步已安装 docker-compose-plugin,你应该能看到版本信息。

使用方式:docker compose up, docker compose ps, docker compose down 等。

❌ 传统方式(不推荐,仅作备选)

如果你需要独立的 docker-compose 二进制文件(旧方式):

bash

深色版本

# 下载最新版
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
注意:这种方式已逐渐被 docker compose 插件取代。

第三步:启动并启用 Docker 服务

bash

深色版本

# 启动 Docker 服务
sudo systemctl start docker

# 设置开机自启
sudo systemctl enable docker

第四步:测试运行

bash

深色版本

docker run hello-world

如果看到欢迎信息,说明安装成功。


常见问题

  • 权限问题:确保用户已加入 docker 组,并重新登录。
  • 源错误:检查 Ubuntu 版本代号是否支持(如 noble 是 24.04)。
  • 网络问题:国内用户可考虑使用镜像源(如阿里云、中科大源)。

总结

工具推荐命令
Dockerdocker --version
Docker Composedocker compose version(注意是空格)
✅ 建议使用 docker compose(插件形式),而非旧的 docker-compose(带短横线)。

如有特定版本需求,可指定安装版本,例如:

bash

深色版本

apt install docker-ce=5:24.0.7-1~ubuntu.22.04~jammy

祝你安装顺利!

一些问题的解决办法

拉取错误的解决办法,类似如下错误

Unable to find image 'linuxserver/mariadb:latest' locally
docker: Error response from daemon: Head "https://registry-1.docker.io/v2/linuxserver/mariadb/manifests/latest": EOF.

说明 Docker 无法从 Docker Hub 拉取镜像,根本原因是: 网络问题,你的路由器无法正常访问 registry-1.docker.io(Docker Hub)
解决方案:
步骤1,使用国内镜像加速器
添加 Docker 镜像加速器(如阿里云、网易、腾讯等)

# 编辑或创建 Docker 配置文件
mkdir -p /etc/docker

cat > /etc/docker/daemon.json << 'EOF'
{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "https://hub-mirror.c.163.com",
    "https://reg-mirror.qiniu.com"
  ],
  "insecure-registries": [],
  "max-concurrent-downloads": 3,
  "data-root": "/var/lib/docker"
}
EOF

步骤2,确保 /var/lib/docker 目录存在

mkdir -p /var/lib/docker

步骤3, 重启 Docker 服务

/etc/init.d/docker restart

步骤4,检查状态

/etc/init.d/docker status

如果看到 running,说明成功了!

步骤5,验证 Docker 是否正常

docker info

你应该能看到:

Registry Mirrors:
  https://mirror.ccs.tencentyun.com
  https://hub-mirror.c.163.com
  https://reg-mirror.qiniu.com

说明镜像加速已生效
验证 daemon.json 是否合法
运行以下命令检查文件内容:

cat /etc/docker/daemon.json

输出应该是:

{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "https://hub-mirror.c.163.com",
    "https://reg-mirror.qiniu.com"
  ],
  "insecure-registries": [],
  "max-concurrent-downloads": 3,
  "compress": true,
  "data-root": "/var/lib/docker"
}

发表评论