侧边栏壁纸
博主头像
qiql博主等级

水能载舟,亦可赛艇

  • 累计撰写 33 篇文章
  • 累计创建 28 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

Ubuntu20.04 安装 Docker 并安装 NVIDIA Container Runtime

qiql
2023-06-09 / 0 评论 / 0 点赞 / 429 阅读 / 646 字

零 概述

本文将介绍如何在一台 Ubuntu20.04 的机器上安装 Docker 和 NVIDIA Container Runtime,从而可以在机器上启动带有GPU的容器。并介绍一些限制容器启动在指定 GPU 卡上的 docker 命令

一 安装 docker

sudo apt-get update
# 安装证书
sudo apt-get install -y ca-certificates curl gnupg lsb-release

# 建立docker资源库
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
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

# 安装docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 验证 是否安装成功
sudo docker -v
docker run hello-world

# 增加当前用户入docker组中
sudo groupadd docker
sudo gpasswd -a $USER docker
newgrp docker

# 验证 docker 的安装
docker ps 
docker run hello-world

二 安装 NVIDIA Container Runtime

curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list

sudo apt-get update
sudo apt-get install nvidia-container-runtime

修改docker配置文件:vim /etc/docker/daemon.json

{
  "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "registry-mirrors": ["https://yp5fg15q.mirror.aliyuncs.com"],
    "data-root": "/data/docker/images",
    "storage-driver": "overlay2",
    "storage-opts": [
        "overlay2.override_kernel_check=true",
        "overlay2.size=100G"
    ]
}

重启docker服务:

sudo systemctl restart docker

三 docker 命令示例

  1. 启动容器,指定端口映射:

    docker run -it --name 容器名 -p 6020:5212 -p 6030:8000 镜像ID /bin/bash
    
  2. 进入容器:

    docker exec -it 容器名 bash
    
  3. 退出容器,但不停止容器:

    Ctrl + P + Q
    
  4. 启动容器时,执行某个 shell 命令:

    docker run -it --name 容器名 镜像名 /bin/bash -c "cd /opt/support && nohup support serve -a 0.0.0.0:8000 > run.log 2>&1 &  /bin/bash"
    
  5. 限制容器启动在某张 GPU和某些 CPU 核心上:

    docker run --runtime=nvidia --restart=always  -it --name 容器名 --cpuset-cpus="49-63" -m 64G -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /etc/data-motd:/etc/data-motd:ro --gpus '"device=3"' --storage-opt size=350G  -p 10000:22 -p 10001:9820 -p 10002:10002 镜像名 /bin/bash -c 'service ssh start && echo "root:123456"|chpasswd && source /root/anaconda3/bin/activate &&/bin/bash /usr/bin/hpcuniversity --token=123456'
    
  6. 打包和解压容器:

    docker commit 容器id 镜像名称:版本号
    docker save -o 压缩文件名称 镜像名称:版本号
    docker load -i 压缩文件名称
    
0

评论区