一、安装docker
- 安装docker
- sudo apt-get install docker.io
复制代码 - 检察版本(验证 Docker 是否安装乐成)
- sudo docker version 或 docker -v
复制代码 - 将当前用户加入 docker 用户组(制止每次运行 docker 都需要使用 sudo)
- sudo usermod -aG docker $USER
复制代码 留意:执行此操作后需要注销并重新登录。
- 启动
- sudo systemctl start docker.service
复制代码 - 检察状态
- sudo systemctl status docker
复制代码 - 修改docker源和修改镜像路径
- 可以使用docker info 检察当前docker的默认存储目录。可以看到docker存储驱动步伐和默认存位:
Storage Driver: overlay
Docker Root Dir: /var/lib/docker
- 停止docker服务
- sudo systemctl stop docker.service
复制代码 - 迁移/var/lib/docker目录下面的文件到 /data/xxx/docker;(留意xxx是你自己界说的目录,找个磁盘空间大一点的目录)
- sudo cp -r /var/lib/docker/* /data/xxx/docker/
复制代码 - 创建或编辑 Docker 的保卫进程配置文件:(默认情况下这个配置文件是没有的,这里实际也就是新建一个)
- sudo gedit /etc/docker/daemon.json
复制代码 - 添加以下内容:(留意xxx是你自己界说的目录)
- {
- "data-root": "/data/xxx/docker",
- "registry-mirrors": [
- "https://docker.1ms.run",
- "https://docker.xuanyuan.me",
- "docker.m.daocloud.io",
- "docker.imgdb.de",
- "docker-0.unsee.tech",
- "docker.hlmirror.com",
- "cjie.eu.org"
- ],
- "default-runtime": "nvidia",
- "runtimes": {
- "nvidia": {
- "args": [],
- "path": "nvidia-container-runtime"
- }
- }
- }
复制代码 - 保存文件并重启 Docker:
- # 重启docker服务sudo systemctl daemon-reloadsudo systemctl restart docker
- sudo systemctl status docker
- docker info # 校验一下是否更改乐成docker ps -adocker images # 确认之前的镜像还在# 校验是否能下载镜像docker run ubuntu:15.10 /bin/echo "Hello world"
复制代码 - 确定容器、镜像没题目后删除/var/lib/docker/目录中的文件。
- docker中使用GPU
- 方法一: 使用nvidia-container-runtime:
- 添加库: Link
- 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
复制代码 - 安装nvidia-container-runtime:
- sudo apt-get install nvidia-container-runtime
- systemctl restart docker
- #重启docker
复制代码 - 测试验证:(启动命令中添加参数:–gpus all 或 --gpus "device=1"指定):
- docker run --gpus all --rm nvidia/cuda:11.0-base nvidia-smi
复制代码
- 方法二:安装 NVIDIA Container Toolkit
- 设置 NVIDIA Container Toolkit 仓库:
- curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
- curl -s -L https://nvidia.github.io/nvidia-docker/$(. /etc/os-release; echo $ID$VERSION_ID)/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
复制代码 - 更新软件包索引并安装 NVIDIA Container Toolkit:
- sudo apt update
- sudo apt install -y nvidia-container-toolkit
复制代码 - 配置容器运行时:
- sudo nvidia-ctk runtime configure --runtime=docker
复制代码 - 重启 Docker 服务:
- sudo systemctl restart docker
复制代码 - 验证安装是否乐成:
- docker run --rm --gpus all nvidia/cuda:12.0.1-base nvidia-smi
复制代码
- 离线安装GPU的docker情况
前提:已经安装好了docker(需要docker版本>=19.03),可以用docker -v进行测试 说明:Docker 19.03的发布,不赞成使用nvidia-docker2软件包,因为Docker运行时中现在已将NVIDIA GPU作为装备当地支持
nvidia将提供原生的显卡支持,只需要安装 nvidia-container-toolkit工具包不再像使用nvidia-docker/2那样复杂配置,而且不支持用docker-compose
在docker19以前都需要单独下载nvidia-docker1或nvidia-docker2来启动容器,docker19后跑需要gpu的docker只需要加个参数–gpus all 即可
- 联网机器设置仓库和GPG密钥
- 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
复制代码 着实,distribution就是你的体系名称,例如:ubuntu22.04等,可以通过cat /etc/os-release等命令检察,检察后替换命令中的内容就行,并设置成暂时变量。
- 在联网的机器上下载包
- apt download libnvidia-container1
- apt download libnvidia-container-tools
- apt download nvidia-container-toolkit-base
- apt download nvidia-container-toolkit
复制代码 或者在NVIDIA的GitHub主页找到Ubuntu体系对应的NVIDIA Container Toolkit安装包,页面的安装包较多,搜索关键词“1.17.4”,进行下载安装包即可:
- libnvidia-container1_1.17.4-1_amd64.deb # 基础库包,提供了最基本的功能,其他包都依赖于它
- libnvidia-container-tools_1.17.4-1_amd64.deb # 基础工具包,依赖于 libnvidia-container1
- nvidia-container-toolkit-base_1.17.4-1_amd64.deb # 基础组件包,依赖于前面的包
- nvidia-container-toolkit_1.17.4-1_amd64.deb # 主要的工具包,依赖于以上所有包
- libnvidia-container1-dbg_1.17.4-1_amd64.deb # 调试符号包,只在调试问题时使用
- libnvidia-container-dev_1.17.4-1_amd64.deb # 开发包,只在进行开发时使用
复制代码 此中最后两个安装包可以选择不下载和不安装
- 拷贝到离线机器上安装(留意:需要按顺序安装)
- # 按顺序执行
- dpkg -i libnvidia-container1
- dpkg -i libnvidia-container-tools
- dpkg -i nvidia-container-toolkit-base
- dpkg -i nvidia-container-toolkit
复制代码 - 检察NVIDIA Container Toolkit的版本以验证是否安装乐成
- 设置Docker默认使用NVIDIA runtime
- sudo nvidia-ctk runtime configure --runtime=docker
复制代码
- 重启docker服务
- 创建容器
- docker run --rm --gpus all -v /home/test:/home/test -v /data:/data --name "test_act" --shm-size="8g" -it ufoym/deepo:latest bash
复制代码 - 备注:
- 备注说明:
- 方法一: 安装nvidia-container-toolkit,后添加—gpus参数来使用
- 使用nvidia-container-toolkit的最大优点:linux主机不需要安装 CUDA toolkit,仅安装显卡驱动 cuda-drivers 即可
- sudo docker run --gpus all -v /home/test:/home/test -v /data:/data --name "test_act" --shm-size="8g" -it ufoym/deepo:latest bash
- 方法二: nvidia-docker2 and nvidia-container-runtime
- 安装nvidia-container-runtime,在首次运行时添加—runtime=nvidia参数,后续启动、结束都不需要再加
- sudo apt-get install nvidia-container-runtime
- sudo docker run --gpus all-v /home/test:/home/test -v /data:/data --name "test_act" --shm-size="8g" -it ufoym/deepo:latest bash
复制代码 - 参考博客
- Ubuntu在线/离线安装nvidia-docker2
- 离线安装Docker以及NVIDIA-docker
- Ubuntu 22.04离线安装Docker和NVIDIA Container Toolkit
二、docker基本操作(以Ultralytics为例)
- # 拉取镜像
- docker pull ultralytics/ultralytics:latest
- # 查看端口号是否被占用
- lsof -i 12345
- # 创建容器
- docker run --gpus all -it --name cc_yolo2 -u root -v /data:/workspace/data -w /workspace/data -p 12345:12345 ultralytics/ultralytics:latest /bin/bash
- # 启动容器
- docker start cc_yolo2
- # 进入容器
- docker exec -it cc_yolo2 bash
- # 查看其torch的库安装位置
- pip show torch
- # 删除容器
- docker rm -f 容器ID
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |