Ubuntu 安装 Docker 和 Docker Compose 最新版保姆级教程
官网地址:
安装 Docker:https://docs.docker.com/engine/install/ubuntu/
安装 Docker Compose:https://docs.docker.com/compose/install/standalone/
注:以下大部分内容来源于官网
Docker 篇
要安装 Docker 引擎,您需要以下 Ubuntu 版本之一的 64 位版本:
- Ubuntu Oracular 24.10
- Ubuntu Noble 24.04 (LTS)
- Ubuntu Jammy 22.04 (LTS)
适用于 Ubuntu 的 Docker 引擎与 x86_64(或 amd64)、armhf、arm64、s390x 和 ppc64le (ppc64el) 架构兼容。
注:x86_64 和 AMD64 是指同一种 64 位处理器架构,只是命名不同。x86_64 是更通用的名称,而 AMD64 则是 AMD 公司对其 64 位处理器架构的命名。
1.卸载旧版本
在安装 Docker Engine 之前,您需要卸载任何冲突的软件包。
您的 Linux 发行版可能会提供非官方的 Docker 包,这可能与 Docker 提供的官方包发生冲突。在安装正式版 Docker Engine 之前,必须先卸载这些包。
要卸载的非官方软件包是:
docker.iodocker-composedocker-compose-v2docker-docpodman-docker
此外,Docker Engine 依赖于 containerd 和 runc。Docker Engine 将这些依赖项捆绑为一个捆绑包:containerd.io。如果您之前安装过 containerd 或 runc,请卸载它们以避免与 Docker Engine 捆绑的版本发生冲突。
运行以下命令以卸载所有冲突的包:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
apt-get 可能会报告您没有安装这些软件包。
2.安装 Docker
方法 1:使用 apt 存储库安装
在新主机上首次安装 Docker Engine 之前,您需要设置 Docker apt 存储库。之后,您可以从存储库安装和更新 Docker。
-
设置 Docker 的
apt存储库。# 添加Docker的官方GPG密钥: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # 将存储库添加到APT源: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update -
安装 Docker 包。
最新版
要安装最新版本,请运行:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugindocker-buildx-plugin docker-compose-plugin 为插件,可以主要下载这几个包(但是经过我的测试,插件还是被安装了):
apt-get install -y docker-ce docker-ce-cli containerd.io具体版本
要安装特定版本的 Docker 引擎,请首先在存储库中列出可用版本:
# List the available versions: apt-cache madison docker-ce | awk '{ print $3 }' 5:28.3.3-1~ubuntu.24.04~noble 5:28.3.2-1~ubuntu.24.04~noble ...选择所需的版本并安装:
VERSION_STRING=5:28.3.3-1~ubuntu.24.04~noble sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
方法 2:使用离线包安装
如果您无法使用 Docker 的 apt 存储库来安装 Docker Engine,您可以下载版本的 deb 文件并手动安装。每次升级 Docker Engine 时,都需要下载一个新文件。
-
在列表中选择您的 Ubuntu 版本。
-
转到
pool/stable/并选择适用的架构(amd64,armhf、arm64或s390x)。 -
下载 Docker 引擎、CLI、containerd 和 Docker Compose 包的以下
deb文件:containerd.io_<version>_<arch>.debdocker-ce_<version>_<arch>.debdocker-ce-cli_<version>_<arch>.debdocker-buildx-plugin_<version>_<arch>.debdocker-compose-plugin_<version>_<arch>.deb
补充:
查看系统架构与版本
root@ubuntuserver:~# arch x86_64 root@ubuntuserver:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.5 LTS Release: 22.04 Codename: jammy root@ubuntuserver:~# lsb_release -cs jammy root@ubuntuserver:~# cat /etc/os-release PRETTY_NAME="Ubuntu 22.04.5 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.5 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy其中,我的架构和版本便是 x86_64(amd64)和 jammy。
所以我的地址便是:https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/
注:x86_64 和 AMD64 是指同一种 64 位处理器架构,只是命名不同。x86_64 是更通用的名称,而 AMD64 则是 AMD 公司对其 64 位处理器架构的命名。
-
安装
.deb包。将以下示例中的路径更新到下载 Docker 包的位置。sudo dpkg -i ./containerd.io_<version>_<arch>.deb \ ./docker-ce_<version>_<arch>.deb \ ./docker-ce-cli_<version>_<arch>.deb \ ./docker-buildx-plugin_<version>_<arch>.deb \ ./docker-compose-plugin_<version>_<arch>.debDocker 守护程序自动启动。
注:如果需要某个特定用户可以用 Docker rootless 模式运行 Docker,那么可以把这个用户也加入 docker 组,比如我们把 test 用户加进去:
apt install docker-ce-rootless-extras
sudo usermod -aG docker test
3.配置daemon.json
镜像加速
编辑 Docker 配置文件 /etc/docker/daemon.json(不存在则创建):
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://docker.1ms.run",
"https://dytt.online",
"https://docker-0.unsee.tech",
"https://lispy.org",
"https://docker.xiaogenban1993.com",
"https://666860.xyz",
"https://hub.rat.dev",
"https://docker.m.daocloud.io",
"https://demo.52013120.xyz",
"https://proxy.vvvv.ee",
"https://registry.cyou",
"https://mirror.ccs.tencentyun.com"
]
}
EOF
-
重启 Docker
sudo systemctl restart docker -
通过运行
hello-world映像来验证安装是否成功:sudo docker run hello-world此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条确认消息并退出。
您现在已成功安装并启动 Docker 引擎。
存储驱动
作用
- 控制 Docker 如何存储容器和镜像的磁盘数据(如
overlay2、aufs、zfs等)。 - 默认使用
overlay2(现代 Linux 内核推荐,性能好且稳定)。
{
"storage-driver": "overlay2"
}
适用场景
- 新部署的 Docker 环境(默认通常已是
overlay2)。 - 旧系统可能默认使用
aufs(性能较差,建议迁移)。
验证
docker info | grep "Storage Driver"
日志限制
默认情况下 Docker 不会限制日志大小,可能导致磁盘被塞满(尤其是日志打印频繁的应用)。
以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘 (泪的教训):
cat > /etc/docker/daemon.json << EOF
{
"log-driver": "json-file",
# 限制容器日志文件大小(每个日志最大 20MB,保留 3 个轮转文件)。
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"userland-proxy": false,
"ipv6": true,
"fixed-cidr-v6": "fdb::/64",
"experimental":true,
"ip6tables":true
}
EOF
数据目录
作用
- 修改 Docker 默认存储路径(如从
/var/lib/docker迁移到/data/docker)。 - 适用于磁盘空间不足或需要分离存储的场景。
{
"data-root": "/data/docker"
}
注意事项
-
迁移前需停止 Docker 服务并备份数据:
sudo systemctl stop docker sudo rsync -a /var/lib/docker/ /data/docker/ -
修改配置后重启 Docker:
sudo systemctl restart docker
默认网络配置
作用
- 修改默认的
docker0网桥 IP 地址(避免与内网冲突)。 - 默认
docker0使用172.17.0.0/16,可自定义为其他私有地址(如192.168.100.0/24)。
{
"bip": "192.168.100.1/24"
}
注意事项
- 修改后需重启 Docker,且已存在的容器网络可能受影响。
用户命名空间
作用
- 增强安全性:将容器内的
root用户映射到宿主机非特权用户(避免容器逃逸风险)。 - 适用于多租户或生产环境。
{
"userns-remap": "default" # 或指定用户组(如 "dockremap")
}
操作步骤
-
创建用户和组:
sudo useradd -r -s /bin/false dockremap sudo usermod -aG docker dockremap -
修改
/etc/docker/daemon.json并重启 Docker。
实时内核事件监控
作用
- 允许 Docker 守护进程重启时保持容器运行(避免服务中断)。
- 适用于高可用场景。
{
"live-restore": true
}
最大并发下载数
作用
- 限制同时拉取镜像的并发数(避免带宽占满或触发 API 限流)。
{
"max-concurrent-downloads": 5
}
推荐配置
可以复制直接用
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"storage-driver": "overlay2",
"registry-mirrors": [
"https://docker.1panel.live",
"https://docker.1ms.run",
"https://dytt.online",
"https://docker-0.unsee.tech",
"https://lispy.org",
"https://docker.xiaogenban1993.com",
"https://666860.xyz",
"https://hub.rat.dev",
"https://docker.m.daocloud.io",
"https://demo.52013120.xyz",
"https://proxy.vvvv.ee",
"https://registry.cyou",
"https://mirror.ccs.tencentyun.com"
],
"max-concurrent-downloads": 5
}
4.卸载 Docker
-
卸载 Docker Engine、CLI、containerd 和 Docker Compose 包:
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras -
不会自动删除主机上的映像、容器、卷或自定义配置文件。要删除所有映像、容器和卷,请执行以下操作:
sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd sudo rm -rf /etc/docker -
删除源列表和密钥环
sudo rm /etc/apt/sources.list.d/docker.list sudo rm /etc/apt/keyrings/docker.asc
您必须手动删除任何编辑的配置文件。
Docker Compose 篇
1.安装 Docker Compose
方法 1:直接下载 V2(推荐)
- 下载二进制文件
# 获取最新版本号
VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -oP '"tag_name": "\K(v\d+\.\d+\.\d+)')
# 下载并安装
sudo curl -L "https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
-
如果服务器连不上 GitHub,那就自己下载下来再上传到服务器上
项目地址:https://github.com/docker/compose/releases
sudo mv docker-compose-$(uname -s)-$(uname -m) /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
- 创建软链接(可选)
如果希望使用 docker compose(V2 风格)而非 docker-compose:
# Linux/macOS
sudo ln -s /usr/local/bin/docker-compose /usr/local/bin/docker compose
-
验证
docker compose version # 应显示 V2 版本
方法 2:通过包管理器安装
# 安装 Docker Compose V2 插件(命令为 `docker compose`)
sudo apt-get update
sudo apt-get install -y docker-compose-plugin
# 验证
docker compose version
2.卸载 Docker Compose
sudo rm /usr/local/bin/docker-compose
sudo rm /usr/local/bin/docker compose # 如果创建了软链接
sudo apt-get remove docker-compose-plugin
补充:
要检查 Compose 的安装位置,请使用:
docker info --format '{{range .ClientInfo.Plugins}}{{if eq .Name "compose"}}{{.Path}}{{end}}{{end}}'
3599

被折叠的 条评论
为什么被折叠?



