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支持的显卡

步骤一:更新并清理包列表

首先,更新包列表并清理可能导致冲突的旧包或未完成的安装:

<code>sudo apt-get update

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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。