在 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)。 - 网络问题:国内用户可考虑使用镜像源(如阿里云、中科大源)。
总结
工具 | 推荐命令 |
---|---|
Docker | docker --version |
Docker Compose | docker 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"
}