摘要:本文针对Ubuntu系统中安装docker-compose-plugin
时出现的E: 无法定位软件包
错误,提供两种解决方案——官方源修复与国内镜像源替换法,并附赠镜像加速配置技巧。
一、问题背景
在Ubuntu系统通过apt install
安装Docker生态工具时,常因软件源配置问题导致以下报错:
E: 无法定位软件包 docker-compose-plugin
此问题多由Docker官方软件源未正确添加或国内网络访问限制导致。
二、解决方案
方案1:修复Docker官方软件源(推荐网络通畅时使用)
1. 添加Docker官方GPG密钥
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
作用:验证软件包签名,防止篡改。
2. 添加官方APT源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
关键参数说明:
signed-by
:指定GPG密钥路径$(lsb_release -cs)
:自动匹配系统版本代号(如Jammy)。
3. 更新并安装
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
或者
apt install docker.io
apt install docker-compose-plugin
方案2:使用国内镜像源(解决网络限制)
1. 腾讯云镜像源配置
# 添加GPG密钥
sudo curl -fsSL https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# 添加软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装
sudo apt update
sudo apt install docker-compose-plugin
2. 阿里云镜像源(备选)
# 替换软件源地址为阿里云
sudo sed -i 's|https://download.docker.com|https://mirrors.aliyun.com/docker-ce|g' /etc/apt/sources.list.d/docker.list
sudo apt update
注:可直接修改/etc/apt/sources.list.d/docker.list
文件中的URL。
三、验证安装
# 检查版本
docker -v
docker compose version
# 运行测试容器
sudo docker run hello-world
若输出Hello from Docker!
则表明全套环境已就绪。
四、进阶配置:镜像加速
为解决后续拉取镜像缓慢问题,建议配置国内镜像加速器:
1. 编辑Docker配置文件
sudo nano /etc/docker/daemon.json
2. 添加加速器地址(示例为2025推荐镜像源)
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://docker.1ms.run",
"https://func.ink",
"https://lispy.org",
"https://docker.xiaogenban1993.com"
]
}
3. 重启服务生效
sudo systemctl daemon-reload
sudo systemctl restart docker
五、常见问题排查
- 依赖缺失:确保已安装
ca-certificates
,curl
,gnupg
等基础工具。 - 版本冲突:卸载旧版Docker(若存在):
sudo apt remove docker docker-engine docker.io containerd runc
- 代理配置:若企业网络需代理,可在
/etc/apt/apt.conf
中添加:
Acquire::http::Proxy "http://proxy_ip:port";
Acquire::https::Proxy "http://proxy_ip:port";