方法一

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


第一步:安装 Docker

1. 更新系统包列表

bash

深色版本

1
sudo apt update
2. 安装必要的依赖包

bash

深色版本

1
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
3. 添加 Docker 的官方 GPG 密钥

bash

深色版本

1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
4. 添加 Docker 的 APT 软件源

bash

深色版本

1
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

深色版本

1
sudo apt update
6. 安装 Docker Engine

bash

深色版本

1
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

这会安装 Docker 引擎、CLI、containerd 和官方插件(包括 docker-compose 插件)。

7. 验证 Docker 是否安装成功

bash

深色版本

1
sudo docker --version

输出应类似:

深色版本

1
Docker version 24.0.7, build afdd53b
8. (可选)让当前用户无需 sudo 使用 Docker

bash

深色版本

1
sudo usermod -aG docker $USER

注意:执行后需重新登录或重启终端,使用户组变更生效。


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

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

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

bash

深色版本

1
docker compose version

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

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

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

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

bash

深色版本

1
2
3
4
5
6
7
8
# 下载最新版
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

深色版本

1
2
3
4
5
# 启动 Docker 服务
sudo systemctl start docker

# 设置开机自启
sudo systemctl enable docker

第四步:测试运行

bash

深色版本

1
docker run hello-world

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


常见问题

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

总结

工具 推荐命令
Docker docker --version
Docker Compose docker compose version(注意是空格)

✅ 建议使用 docker compose(插件形式),而非旧的 docker-compose(带短横线)。

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

bash

深色版本

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

祝你安装顺利!

一些问题的解决办法

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

1
2
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 镜像加速器(如阿里云、网易、腾讯等)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 编辑或创建 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 目录存在

1
mkdir -p /var/lib/docker

步骤3, 重启 Docker 服务
1
/etc/init.d/docker restart

步骤4,检查状态
1
/etc/init.d/docker status

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

步骤5,验证 Docker 是否正常

1
docker info

你应该能看到:
1
2
3
4
Registry Mirrors:
https://mirror.ccs.tencentyun.com
https://hub-mirror.c.163.com
https://reg-mirror.qiniu.com

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

输出应该是:
1
2
3
4
5
6
7
8
9
10
11
{
"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"
}

方法二

一键安装脚本

1
2
3
4
5
6
7
8
9
10
11
12
# 登录root
sudo -i
# 更新
apt update
# 升级
apt upgrade
# 按照工具curl和vim
apt install -y curl vim
# 官方脚本, 指定使用Aliyun加速, root权限执行
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 查看安装的docker版本
docker --version

普通用户授权docker权限

1
2
3
4
5
6
7
# 注意登录用户身份
sudo usermod -aG docker $USER # 需要登出再重新登录才生效(实测需要重启生效)
# 没有生效前 id 与 id $USER 显示不一致
id $USER 或 cat /etc/group | grep docker # 查看

newgrp - docker # 更新用户组 很重要(临时生效)
docker ps # 测试docker命令是否可以使用sudo正常使用

(可选)配置国内源
1
2
3
4
5
6
7
8
9
# 配置aliyun镜像加速
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.1ms.run", "https://docker.m.daocloud.io"]
}
EOF
systemctl daemon-reload
systemctl restart docker

测试源是否能用
1
2
# 测试镜像拉取&容器运行
docker run hello-world

安装docker compose
参见官方文档: https://docs.docker.com/compose/install/linux/#install-using-the-repository
针对linux平台, 仓库安装脚本如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Debian/Ubuntu
sudo apt-get update
sudo apt-get install docker-compose-plugin

# RPM
sudo yum update
sudo yum install docker-compose-plugin

# 验证
docker compose version

docker --version

docker info

按照portainer管理工具
参考链接https://docs.portainer.io/start/install-ce/server/docker/linux

1
2
3
4
5
6
7
8
9
10
11
12
13
# 1. 拉取镜像
docker pull portainer/portainer-ce:latest

# 2.创建磁盘卷(可选)
docker volume create portainer_data

# 3. 创建容器
# 端口组合二选一即可, 粘贴代码前注意先删除 自#之后的注释, 避免格式问题
docker run -d --name portainer --restart=always \
-p 8000:8000 -p 9443:9443 \ # https使用, 仅使用http的话可以尝试注释掉
-p 9000:9000 \ # 使用传统的http端口
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data portainer/portainer-ce:latest

汉化版本
作者地址:https://hub.docker.com/r/6053537/portainer-ce
1
2
3
4
5
6
docker volume create portainer_data

docker run -d --name portainer-zh --restart=always \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data 6053537/portainer-ce:latest

以上摘抄至https://zoe.red/2024/174.html ,感谢大佬