
















离线安装 Docker 通常是通过以下方式完成的:
# 1、上传 20260519offlineinstalldocker-docker-compose.tar.gz到linux服务器
# 2、再20260519offlineinstalldocker-docker-compose.tar.gz所在目录 打开终端
输入解压命令:sudo tar zxvf 20260519offlineinstalldocker-docker-compose.tar.gz
# 3、切换到解压目录20260519offlineinstalldocker-docker-compose
输入切换命令:cd ./20260519offlineinstalldocker-docker-compose/
# 4、离线安装dockers以及docker-compose
输入安装命令:sudo sh installdocker.sh
# 5、上述命令执行完成以后,可以查看docker以及docker-compose,如果有docker以及docker-compose版本显示即成功,否则查看具体信息具体处理。
注意:
Docker Engine 20.10.13(API 1.41)使用的Docker Engine 20.10.13---V1 版本 Docker-Compose V1
Docker Engine 24.0+(API 1.53)使用的Docker Engine 24+--V2 版本---Docker Compose V2
乱用的话会报错:unable to get image 'xiixix': Error response from daemon: client version 1.53 is too new. Maximum supported API version is 1.41
Docker Compose 的版本历史:
V1 最后版本:1.29.2(2021 年发布)
V2 起始版本:v2.0.0(2021 年底)
当前最新 V2 版本:v2.24.x(截至 2024 年)
docker-29.3.0.tgz----Docker Engine 29(API 1.53)使用的Docker Engine 29--V2 版本---docker-compose-linux-x86_64--Docker Compose V2--ok
离线安装脚本:20260519offlineinstalldocker-docker-compose.tar.gz
Docker Compose 如果是离线安装的,通常也是二进制文件直接复制到了系统目录。
# 方法1:检查常见位置
ls -la /usr/local/bin/docker-compose
ls -la /usr/bin/docker-compose
# 方法2:通过 docker info 查询插件路径(如果是插件模式)
docker info --format '{{range .ClientInfo.Plugins}}{{if eq .Name "compose"}}{{.Path}}{{end}}{{end}}'
删除二进制文件
根据查到的位置,执行删除:
# 删除手动安装的二进制文件
sudo rm -f /usr/local/bin/docker-compose
sudo rm -f /usr/bin/docker-compose
# 如果是作为 Docker CLI 插件安装的(路径通常是 ~/.docker/cli-plugins/ 或系统目录)
sudo rm -f /usr/local/lib/docker/cli-plugins/docker-compose
sudo rm -f ~/.docker/cli-plugins/docker-compose
把以上步骤整合成一个脚本,保存为 uninstall_docker_offline.sh:
#!/bin/bash
echo "========================================="
echo " 正在彻底卸载 Docker (离线安装版)"
echo "========================================="
# 1. 停止服务
echo "1. 停止 Docker 服务..."
sudo systemctl stop docker 2>/dev/null
sudo systemctl disable docker 2>/dev/null
# 2. 删除 systemd 服务文件
echo "2. 删除 systemd 服务文件..."
sudo rm -f /etc/systemd/system/docker.service
sudo rm -f /etc/systemd/system/docker.socket
sudo systemctl daemon-reload
# 3. 删除二进制文件
echo "3. 删除 Docker 二进制文件..."
sudo rm -f /usr/bin/docker*
sudo rm -f /usr/bin/containerd*
sudo rm -f /usr/bin/ctr
sudo rm -f /usr/bin/runc
sudo rm -f /usr/local/bin/docker-compose
sudo rm -f /usr/bin/docker-compose
# 4. 删除数据目录
echo "4. 删除 Docker 数据目录..."
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /etc/docker
sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -f /var/run/docker.sock
# 5. 删除 docker 用户组(可选)
echo "5. 删除 docker 用户组..."
sudo groupdel docker 2>/dev/null
echo "========================================="
echo " 卸载完成!"
echo "========================================="
# 验证
echo "验证卸载结果:"
docker --version 2>/dev/null && echo "⚠️ Docker 仍然存在" || echo "✅ Docker 已卸载"
docker-compose --version 2>/dev/null && echo "⚠️ Docker Compose 仍然存在" || echo "✅ Docker Compose 已卸载"
chmod +x uninstall_docker_offline.sh
sudo ./uninstall_docker_offline.sh
abc@123:~/20260519offlineinstalldocker-docker-compose/dify/docker$ sudo docker-compose up -d
[+] up 10/10
! Image busybox:latest Interrupted 30.1s
! Image postgres:15-alpine Interrupted 30.1s
! Image langgenius/dify-sandbox:0.2.15 Interrupted 30.1s
✘ Image langgenius/dify-web:1.14.2 Error failed to resolve reference "docker.io/langgenius/dify-web:1.14.2": failed to do request: Head "https://mirror.ccs.tencentyun.com/v2/langgenius/dify... 30.1s
! Image redis:6-alpine Interrupted 30.1s
! Image langgenius/dify-api:1.14.2 Interrupted 30.1s
! Image ubuntu/squid:latest Interrupted 30.1s
! Image langgenius/dify-plugin-daemon:0.6.1-local Interrupted 30.1s
! Image nginx:latest Interrupted 30.1s
! Image semitechnologies/weaviate:1.27.0 Interrupted 30.1s
Error response from daemon: failed to resolve reference "docker.io/langgenius/dify-web:1.14.2": failed to do request: Head "https://mirror.ccs.tencentyun.com/v2/langgenius/dify-web/manifests/1.14.2?ns=docker.io": dial tcp: lookup mirror.ccs.tencentyun.com on 127.0.0.53:53: no such host
abc@123:~/20260519offlineinstalldocker-docker-compose/dify/docker$
最直接有效的解决方法是为 Docker 配置国内的镜像加速器。这会让 Docker 优先从国内的服务器拉取镜像,速度和稳定性都会有质的飞跃。
配置 Docker Daemon(一劳永逸)
这是更推荐的做法,配置后所有 docker pull 命令都会自动走加速通道。
🛠️ 修改 Linux 服务器 DNS 步骤
sudo nano /etc/resolv.conf
nameserver 114.114.114.114 # 中国电信公共 DNS
nameserver 8.8.8.8 # Google 公共 DNS
ping www.baidu.com
如果依然能正常返回 IP 地址且没有丢包,说明 DNS 配置已经生效。
ping www.baidu.com
如果依然能正常返回 IP 地址且没有丢包,说明 DNS 配置已经生效。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.mirrors.ustc.edu.cn"
]
}
EOF
(这里配置了多个镜像源作为备份,如果一个失效,Docker会自动尝试下一个,也可以使用网易、阿里云和腾讯云的镜像源,你可以根据实际情况选择)
{ "registry-mirrors": ["https://<你的专属加速地址>.mirror.aliyuncs.com"] }
sudo systemctl daemon-reload
sudo systemctl restart docker
docker info
或者
sudo docker info | grep -A 5 "Registry Mirrors"
查看输出中是否有 Registry Mirrors 列表,确认配置生效。
配置完成后,再次运行 sudo docker pull 镜像 问题通常就能解决。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。