Ubuntu服务器配置docker

1、卸载原始docker和英伟达容器运行时(如有)

bash 复制代码
# 停止服务
sudo systemctl stop docker
sudo systemctl stop docker.socket
sudo systemctl disable docker

# 卸载Docker全家桶
sudo apt remove -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 卸载所有nvidia-container相关包(匹配你当前已安装的组件)
sudo apt remove -y libnvidia-container-tools libnvidia-container1 nvidia-container-toolkit nvidia-container-toolkit-base

# 自动清理无用依赖
sudo apt autoremove -y

# 删除全部配置、镜像、容器持久化数据
sudo rm -rf /etc/docker
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf ~/.docker /root/.docker
sudo rm -rf /etc/nvidia-container-runtime/

# 删除docker软件源与密钥
sudo rm -f /etc/apt/sources.list.d/docker.sources
sudo rm -f /etc/apt/keyrings/docker.asc

# 更新软件源缓存
sudo apt update

2、安装Docker

bash 复制代码
# 更新索引
sudo apt update 
 
# 安装Docker依赖
sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common  
 
# 添加Docker的官方GPG密钥(清华源)
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 
 
# 添加Docker的官方APT仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 
 
# 安装Docker Engine-Community
sudo apt-get update
sudo apt install docker-ce 
 
# 验证是否安装成功
sudo docker --version 
 
# 将当前用户添加到docker组(以便无需sudo运行Docker命令)
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo service docker restart
newgrp - docker
 
# 安装 Docker Compose
sudo apt-get install -y docker-compose-plugin
 
# 如果遇到权限问题,尝试:
sudo chmod o+rw /var/run/docker.sock

3、安装Nvidia Container Runtime

bash 复制代码
# 添加Nidia仓库
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
 
# 更新索引
sudo apt-get update
 
# 安装ToolKit
sudo apt-get install -y nvidia-container-toolkit
 
# 配置Nvidia 容器运行时
sudo nvidia-ctk runtime configure --runtime=docker
 
# 安装完成后重启docker使nvidia生效. 使用下列命令重启docker
sudo systemctl restart docker.service
 
# option: 使用下列命令验证显卡是否docker中可备加载
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

(最后一步若失败)

bash 复制代码
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "runtimes": {
    "nvidia": {
      "path": "nvidia-container-runtime",
      "runtimeArgs": []
    }
  },
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://mirror.baidubce.com",
    "https://docker.nju.edu.cn"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
相关推荐
对象存储与RustFS1 分钟前
Jenkins 的构建产物别堆在控制器磁盘:用 RustFS 当它的 S3 工件仓库
后端·docker·云原生
say_fall2 小时前
【Linux网络编程】UDP套接字编程:系统编程组件、基础回显服务、InetAddr与地址转换、翻译服务与线程池聊天室
linux·服务器·网络·udp·vr
江湖有缘3 小时前
基于Ubuntu部署SoduWork:企业级 AI 原生协同平台实战全流程
linux·人工智能·ubuntu·ai·soduwork
无奈笑天下12 小时前
银河麒麟上nproc命令教程详解
linux·运维·服务器
火云代理15 小时前
更换网络后为什么会退出登录?分清 IP、Cookie 与会话的关系
服务器·网络·网络协议·tcp/ip·php·ip
威嵌神州16 小时前
嵌入式排故实录:高并发下串口数据“超时丢包”的根因剖析与架构优化
运维·服务器·嵌入式硬件·缓存
java_logo17 小时前
Docker 部署 DeepSeek Harness(moelin):轻松搭建带登录的本地 AI Agent 平台
运维·docker·容器·ai agent·deepseek·harness·轩辕镜像
xbzb18 小时前
容器 IP 每次重建都变?docker network 五种模式与自定义网桥固定地址
网络·docker·容器·ip·network·固定
火云代理19 小时前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
坤坤子吖19 小时前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习