Ubuntu 上安装 Docker 和 Docker Compose
方法一
在 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 | # 下载最新版 |
注意:这种方式已逐渐被
docker compose
插件取代。
第三步:启动并启用 Docker 服务
bash
深色版本
1 | # 启动 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
2Unable 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 | # 编辑或创建 Docker 配置文件 |
步骤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
4Registry 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/linux1
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-ce1
2
3
4
5
6docker 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 ,感谢大佬