适用环境:

  • 操作系统:Kylin Linux Advanced Server V10 (Halberd)

  • 内核:4.19.x

  • 目标:安装静态二进制 Docker 23.x + Docker Compose 2.x,长期后台运行


1️⃣ 下载 Docker 静态二进制文件

cd /tmp

# 下载 Docker 23.0.6 静态版
sudo curl -L https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/docker-23.0.6.tgz -o docker.tgz

# 解压到 /usr/local/bin,并去掉一级目录
sudo tar xzvf docker.tgz --strip-components=1 -C /usr/local/bin

# 给二进制文件添加执行权限
sudo chmod +x /usr/local/bin/docker* /usr/local/bin/containerd*

# 删除压缩包
rm -f docker.tgz

✅ 注意:静态版 Docker 不会自动安装 systemd 服务文件,所以需要手动创建。


2️⃣ 创建 systemd 服务文件

2.1 containerd.service

sudo tee /etc/systemd/system/containerd.service <<'EOF'
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target

[Service]
ExecStart=/usr/local/bin/containerd --log-level info --address /run/containerd/containerd.sock
Restart=always
LimitNOFILE=1048576
LimitNPROC=1048576
Delegate=yes

[Install]
WantedBy=multi-user.target
EOF

2.2 docker.service

sudo tee /etc/systemd/system/docker.service <<'EOF'
[Unit]
Description=Docker Application Container Engine
After=network.target containerd.service
Requires=containerd.service

[Service]
ExecStart=/usr/local/bin/dockerd --containerd=/usr/local/bin/containerd -H unix:///var/run/docker.sock
ExecReload=/bin/kill -s HUP $MAINPID
Restart=always
LimitNOFILE=1048576
LimitNPROC=1048576

[Install]
WantedBy=multi-user.target
EOF

⚠️ 注意事项:

  • 静态版 Docker 需要指定 --containerd=/usr/local/bin/containerd

  • -H unix:///var/run/docker.sock 让 dockerd 使用标准 UNIX socket


3️⃣ 启用并启动服务

# 重新加载 systemd 配置
sudo systemctl daemon-reload

# 设置开机自启
sudo systemctl enable containerd
sudo systemctl enable docker

# 启动服务
sudo systemctl start containerd
sudo systemctl start docker

# 检查状态
sudo systemctl status containerd
sudo systemctl status docker

✅ 如果显示 active (running) 就说明容器运行时和 Docker 都启动成功。


4️⃣ 安装 Docker Compose 2.x(CLI 插件)

# 创建目录(如果不存在)
sudo mkdir -p /usr/local/lib/docker/cli-plugins

# 下载 Docker Compose v2.28.1
sudo curl -L \
https://ghfast.top/https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-linux-x86_64 \
-o /usr/local/lib/docker/cli-plugins/docker-compose

# 添加执行权限
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

# 检查版本
docker compose version
# 输出: Docker Compose version v2.28.1

💡 注意:

  • Docker Compose 2.x 是 CLI 插件模式,不是旧版独立二进制 docker-compose

  • 下载速度慢可使用国内镜像,但要确认完整包


5️⃣ 验证 Docker 与 Docker Compose

# 查看 Docker 客户端/服务端信息
docker version
docker info

# 测试 Docker Compose 是否可用
docker compose version

✅ 输出示例:

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 23.0.6
 Storage Driver: overlay2
 ...

6️⃣ 重要问题和解决方案

问题 原因 解决方案
Failed to start docker.service: Unit containerd.service not found 静态版 Docker 没有 systemd unit 文件 创建 containerd.service 文件(如步骤 2.1)
Cannot connect to the Docker daemon at unix:///var/run/docker.sock dockerd 没启动,或 socket 权限不对 启动 dockerd(步骤 3),或用 root 执行命令
Docker Compose 无法运行 使用旧版二进制或路径不对 使用 CLI 插件模式,放到 /usr/local/lib/docker/cli-plugins/docker-compose 并加执行权限

7️⃣ 长期后台运行建议

  • Docker 与 containerd 服务已经 systemd 管理,开机自启:

sudo systemctl enable containerd docker
  • 查看实时日志:

sudo journalctl -u docker -f
sudo journalctl -u containerd -f
  • 使用 Docker Compose 部署项目:

cd /root/dify/docker
docker compose -p dify up -d
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐