docker 配置与使用
hxyzs 2024-08-08 16:37:01 阅读 58
目录
安装docker
作者遇到的问题1:安装docker
错误说明
解决方法:
作者遇到问题2:GPG密钥问题
问题说明
解决方法:
方法一:使用备用的GPG密钥服务器
方法二:使用国内镜像源
方法3:手动下载并安装GPG密钥
作者遇到的问题3:镜像拉取问题
问题说明
解决方案:
第一步:确认Docker配置文件权限
第二步:删除并重新创建Docker配置文件
第三步: 重启Docker服务
第四步:测试docker命令以确保问题解决
作者遇到的问题3:镜像无法拉取问题
解决方案
配置Docker镜像源
安装docker
作者遇到的问题1:安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io 正在读取软件包列表... 完成 正在分析软件包的依赖关系树
正在读取状态信息... 完成
没有可用的软件包 docker-ce,但是它被其它的软件包引用了。 这可能意味着这个缺失的软件包可能已被废弃, 或者只能在其他发布源中找到
E: 软件包 docker-ce 没有可安装候选 E: 无法定位软件包 docker-ce-cli E: 无法定位软件包 containerd.io E: 无法按照 glob ‘containerd.io’ 找到任何软件包 E: 无法按照正则表达式 containerd.io 找到任何软件包
错误说明
这个错误表明你的Ubuntu存储库中没有Docker相关的包。可以通过添加Docker官方存储库来解决这个问题
解决方法:
1.移除旧版本:移除可能存在的旧版本
<code>sudo apt-get remove docker docker-engine docker.io containerd runc
2. 更新包索引:更新宝索引并安装依赖包
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
3.添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4.设置Docker存储库:设置稳定版的Docker存储库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5.更新包索引:再次更新包索引
sudo apt-get update
6.安装Docker引擎:安装最新版本的Docker引擎和容器工具
sudo apt-get install docker-ce docker-ce-cli containerd.io
作者遇到问题2:GPG密钥问题
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg gpg: WARNING: unsafe ownership on homedir '/home/hxy/.gnupg' File '/usr/share/keyrings/docker-archive-keyring.gpg' exists. 是否覆盖?(y/N) y
curl: (7) Failed to connect to download.docker.com port 443: 连接超时 gpg: 找不到有效的 OpenPGP
问题说明
这个问题表明你当前无法连接到Docker的官方GPG密钥服务器,可能是由于网络问题或防火墙限制。
解决方法:
方法一:使用备用的GPG密钥服务器
尝试使用其他GPG密钥服务器来下载Docker的GPG密钥:
curl -fsSL https://keys.openpgp.org/vks/v1/by-fingerprint/0EBFCD88 | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
方法二:使用国内镜像源
如果你在中国大陆,可以尝试使用国内的镜像源,例如阿里云的Docker镜像源:
1.添加阿里云的Docker镜像源
echo "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
2. 再次更新包索引:
sudo apt-get update
3.安装Docker引擎
sudo apt-get install docker-ce docker-ce-cli containerd.io
方法3:手动下载并安装GPG密钥
1.手动下载GPG密钥
wget https://download.docker.com/linux/ubuntu/gpg -O docker.gpg
2.将GPG密钥添加到系统
sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg docker.gpg
作者遇到的问题3:镜像拉取问题
docker search torch1.13 WARNING: Error loading config file: /home/hxy/.docker/config.json: open /home/hxy/.docker/config.json: permission denied
问题说明
权限问题:
/home/hxy/.docker/config.json
文件权限问题。
解决方案:
第一步:确认Docker配置文件权限
sudo chown $USER:$USER /home/hxy/.docker/config.json
sudo chmod 644 /home/hxy/.docker/config.json
第二步:删除并重新创建Docker配置文件
sudo rm -rf /home/hxy/.docker/config.json
mkdir -p /home/hxy/.docker
echo '{}' | sudo tee /home/hxy/.docker/config.json
sudo chown $USER:$USER /home/hxy/.docker/config.json
sudo chmod 644 /home/hxy/.docker/config.json
第三步: 重启Docker服务
重启Docker服务以确保配置文件生效:
sudo systemctl restart docker
第四步:测试docker命令以确保问题解决
docker pull hello-world
作者遇到的问题3:镜像无法拉取问题
参考解决方案
解决方案
配置Docker镜像源
如果不存在<code>/etc/docker/daemon.json这个配置文件,可以直接使用下面的命令:
# 创建目录
sudo mkdir -p /etc/docker
# 写入镜像配置
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
EOF
# 重启docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
如果已经存在/etc/docker/daemon.json
这个配置文件,手动复制下面的镜像地址加如到配置中:
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
别忘记重启Docker服务:
# 重启docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
检验是否安装成功:
docker info
作者遇到的问题4:安装gpu支持的显卡
步骤一:更新并清理包列表
首先,更新包列表并清理可能导致冲突的旧包或未完成的安装:
sudo apt-get clean
sudo apt-get autoremove
步骤二:手动安装 nvidia-container-toolkit-base
尝试单独安装nvidia-container-toolkit-base
,以便查看更详细的依赖关系信息:
sudo apt-get install nvidia-container-toolkit-base
这一步安装成功之后,再尝试安装 nvidia-container-toolkit:
sudo apt-get install nvidia-container-toolkit
步骤三:修复依赖关系
如果仍然有依赖关系问题,尝试修复它们:
sudo apt-get -f install
步骤四:逐步安装相关包
如果上述步骤无法解决问题,可以尝试逐步安装所有相关的包。
1.添加NVIDIA Docker存储库(如果还未添加):
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
2.更新包列表
sudo apt-get update
3. 安装所需的包:
sudo apt-get install nvidia-container-runtime
sudo apt-get install nvidia-container-toolkit-base
sudo apt-get install nvidia-container-toolkit
sudo apt-get install nvidia-docker2
4. 重启Docker守护进程:
sudo systemctl restart docker
验证安装
sudo systemctl restart docker
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。