• docker 配置与使用


    目录

    安装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.移除旧版本:移除可能存在的旧版本

    sudo apt-get remove docker docker-engine docker.io containerd runc
    

    2. 更新包索引:更新宝索引并安装依赖包

    1. sudo apt-get update
    2. sudo apt-get install \
    3. apt-transport-https \
    4. ca-certificates \
    5. curl \
    6. gnupg \
    7. 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存储库

    1. echo \
    2. "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
    3. $(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配置文件权限
    1. sudo chown $USER:$USER /home/hxy/.docker/config.json
    2. sudo chmod 644 /home/hxy/.docker/config.json
    第二步:删除并重新创建Docker配置文件
    1. sudo rm -rf /home/hxy/.docker/config.json
    2. mkdir -p /home/hxy/.docker
    3. echo '{}' | sudo tee /home/hxy/.docker/config.json
    4. sudo chown $USER:$USER /home/hxy/.docker/config.json
    5. sudo chmod 644 /home/hxy/.docker/config.json
    第三步: 重启Docker服务

    重启Docker服务以确保配置文件生效:

    sudo systemctl restart docker
    
     第四步:测试docker命令以确保问题解决
    docker pull hello-world
    

    作者遇到的问题3:镜像无法拉取问题

    参考解决方案

    解决方案

    配置Docker镜像源

    如果不存在/etc/docker/daemon.json这个配置文件,可以直接使用下面的命令:

    1. # 创建目录
    2. sudo mkdir -p /etc/docker
    3. # 写入镜像配置
    4. sudo tee /etc/docker/daemon.json <<-'EOF'
    5. {
    6. "registry-mirrors": [
    7. "https://docker.m.daocloud.io",
    8. "https://dockerproxy.com",
    9. "https://docker.mirrors.ustc.edu.cn",
    10. "https://docker.nju.edu.cn"
    11. ]
    12. }
    13. EOF
    14. # 重启docker服务
    15. sudo systemctl daemon-reload
    16. sudo systemctl restart docker

    如果已经存在/etc/docker/daemon.json这个配置文件,手动复制下面的镜像地址加如到配置中:

    1. "registry-mirrors": [
    2. "https://docker.m.daocloud.io",
    3. "https://dockerproxy.com",
    4. "https://docker.mirrors.ustc.edu.cn",
    5. "https://docker.nju.edu.cn"
    6. ]

    别忘记重启Docker服务:

    1. # 重启docker服务
    2. sudo systemctl daemon-reload
    3. sudo systemctl restart docker

    检验是否安装成功:

    docker info

    作者遇到的问题4:安装gpu支持的显卡

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

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

    1. sudo apt-get update
    2. sudo apt-get clean
    3. 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存储库(如果还未添加):

    1. distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
    2. && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
    3. && 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. 安装所需的包:

    1. sudo apt-get install nvidia-container-runtime
    2. sudo apt-get install nvidia-container-toolkit-base
    3. sudo apt-get install nvidia-container-toolkit
    4. sudo apt-get install nvidia-docker2

    4. 重启Docker守护进程:

    sudo systemctl restart docker
    

     验证安装

    sudo systemctl restart docker
    

  • 相关阅读:
    肖sir__设计测试用例方法之_(白盒测试)
    沉睡者IT - 为你解密那些卖虚拟资源和知识付费课程的平台到底有多简单和多赚钱。
    忍不住推荐一款作图工具draw.io
    【探索Spring底层】容器接口
    【Linux】自制shell
    【Python函数式编程】——返回函数、闭包、装饰器、偏函数
    【C#学习】给FormClosing增加消息响应函数
    MES管理系统在柔性制造中有何重要作用
    FFmpeg源代码:AVFormatContext相关接口
    html解决浏览器记住密码输入框的问题
  • 原文地址:https://blog.csdn.net/hxyzs/article/details/139806679