docker-compose安装文档

方案一:使用 Docker 官方仓库安装,推荐

本文以 CentOS/RHEL 系统为例。

推荐顺序:

  1. 优先使用 Docker 官方 yum/dnf 仓库安装 Docker
  2. 优先使用 docker-compose-plugin,命令为 docker compose
  3. Docker CLI 版本过老时,再使用 legacy docker-compose
  4. 二进制安装方式仅作为离线或特殊场景备用方案

一、添加 Docker 官方仓库

yum install -y yum-utils

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo


二、替换为国内源,可选

使用清华源

sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

或者直接使用中科大源

yum-config-manager --add-repo http://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo


三、安装 Docker 和 Docker Compose 插件

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

如果系统使用的是 dnf:

dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin


四、启动 Docker

systemctl enable --now docker

systemctl status docker


五、验证 Docker 和 Docker Compose

docker version

docker info

docker run hello-world

docker compose version


Docker Compose 安装方式选择

安装 Docker Compose 前,先查看 Docker CLI 版本:

docker version

或者只查看客户端版本:

docker version --format '{{.Client.Version}}'

选择规则:

  • Docker CLI >= 18.09:推荐使用 Docker CLI 插件方式,命令是 docker compose
  • Docker CLI < 18.09:大概率不识别 cli-plugins,只能升级 Docker CLI,或使用 legacy docker-compose

推荐方案:使用 docker-compose-plugin

如果前面已经安装过:

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

通常已经包含 Docker Compose 插件。

验证:

docker compose version

使用方式:

docker compose up -d

docker compose ps

docker compose logs -f

docker compose down


备用方案:手动安装 Docker Compose 插件

适用于 Docker 已安装成功,但系统仓库中没有 docker-compose-plugin 的场景。

mkdir -p /usr/local/lib/docker/cli-plugins

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/lib/docker/cli-plugins/docker-compose

chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

docker compose version

如果需要固定 Docker Compose 版本:

curl -L "https://github.com/docker/compose/releases/download/v2.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/lib/docker/cli-plugins/docker-compose

chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

docker compose version


兼容方案:安装 legacy docker-compose

适用于 Docker CLI 版本过老,或者需要兼容老脚本的场景。

安装后使用:

docker-compose

安装命令:

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose

docker-compose version


方案二:直接下载 Docker 二进制文件,备用

不推荐作为常规安装方式。

二进制安装适合离线环境、临时测试或特殊系统环境。
如果服务器可以正常使用 yum/dnf,建议优先使用方案一。

一、安装 Docker 二进制文件

wget https://download.docker.com/linux/static/stable/x86_64/docker-29.0.4.tgz

tar xzvf docker-29.0.4.tgz

cp docker/* /usr/bin/

docker --version

dockerd --version


二、临时启动 Docker daemon

dockerd &

注意:
使用二进制方式安装时,dockerd & 只适合临时启动。
如果需要长期使用,建议仍然改用 yum/dnf 安装,并通过 systemd 管理 Docker 服务。


三、验证 Docker

docker info

docker run hello-world


四、卸载二进制安装的 Docker

注意:
以下命令只适用于通过 cp docker/* /usr/bin/ 这种二进制方式安装的 Docker。
如果 Docker 是通过 yum/dnf 安装的,不要使用这种方式卸载。

pkill dockerd

pkill containerd

rm -f /usr/bin/docker

rm -f /usr/bin/dockerd

rm -f /usr/bin/docker-init

rm -f /usr/bin/docker-proxy

rm -f /usr/bin/containerd

rm -f /usr/bin/containerd-shim

rm -f /usr/bin/containerd-shim-runc-v2

rm -f /usr/bin/ctr

rm -f /usr/bin/runc

rm -f /usr/local/lib/docker/cli-plugins/docker-compose

rm -f /usr/local/bin/docker-compose

rm -f /usr/bin/docker-compose

如果需要彻底清理 Docker 数据,可以执行:

rm -rf /var/lib/docker

rm -rf /var/lib/containerd

rm -rf /etc/docker

注意:
彻底清理会删除所有镜像、容器、卷和 containerd 数据。


总结

推荐安装方式:

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

systemctl enable --now docker

docker compose version

推荐使用新版 Compose 命令:

docker compose

旧版兼容命令:

docker-compose

只建议在以下场景使用:

  • Docker CLI 版本过老,不支持 cli-plugins
  • 老项目脚本中已经写死了 docker-compose
  • 暂时无法升级 Docker CLI

安装docker之后配置docker数据存储位置:

方法1: 修改配置文件

mkdir -p /etc/docker

cat > /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.1panel.live",
"https://docker.m.ixdev.cn",
"https://hub.rat.dev",
"https://docker.xuanyuan.me",
"https://dockerproxy.net",
"https://docker-registry.nmqu.com",
"https://hub.amingg.com",
"https://docker.amingg.com",
"https://docker.hlmirror.com",
"https://hub1.nat.tf",
"https://hub2.nat.tf",
"https://hub3.nat.tf",
"https://docker.m.daocloud.io",
"https://docker.kejilion.pro",
"https://docker.367231.xyz",
"https://hub.1panel.dev",
"https://dockerproxy.cool",
"https://docker.apiba.cn",
"https://proxy.vvvv.ee"
],
"data-root": "/root/data"
}

方法2: 修改启动选项

systemctl cat docker 查看systemd文件位置

在启动选项后加    --data-root=/root/data

ExecStart=/usr/bin/dockerd --data-root=/root/data

配置端口转发

sed -i ‘s#^net.ipv4.ip_forward=0$#net.ipv4.ip_forward=1#g’ /etc/sysctl.conf
sysctl -p >> temp.log

启动测试

修改后进行如下操作

systemctl  daemon-reload

systemctl enable --now docker

nginx1.24-alpine镜像

快速启动测试:

docker load -i < nginx_1.24-alpine.tar

docker run -d -p 80:80 --name test_nginx nginx:1.24-alpine

curl -v http://localhost

滚动至顶部