鱼C论坛

 找回密码
 立即注册
查看: 1188|回复: 1

[学习笔记] dock深度学习容器

[复制链接]
发表于 2023-5-8 15:45:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Handsome_zhou 于 2024-1-18 13:48 编辑

配置nvidiadocker,拉取深度学习容器:

先安装docker engin(有驱动就可):
  1. curl https://get.docker.com | sh \
  2.   && sudo systemctl --now enable docker
复制代码

  1. distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
  2.       && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  3.       && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
  4.             sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  5.             sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
复制代码

  1. sudo apt-get update
复制代码

  1. sudo apt-get install -y nvidia-docker2
复制代码

  1. sudo nvidia-ctk runtime configure --runtime=docker
复制代码

  1. sudo systemctl restart docker
复制代码

  1. sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
复制代码


创建容器:
  1. sudo docker run --gpus all -it --rm -p 8888:8888 -v ~:/workspace \
  2.         --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \
  3.         nvcr.io/nvidia/pytorch:22.07-py3
复制代码



参考链接:https://docs.nvidia.com/datacent ... l-guide.html#docker
                https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch
               
                https://www.bilibili.com/video/B ... e63733e99531caedb48




docker 相关指令:
        docker ps -a :展示所有已经启动的容器或已经停止的容器
        docker ps : 展示所有在运行中的容器
        docker images: 展示本地所有的容器

        docker commit 容器ID 新镜像名 : 生成新的镜像
        sudo docker run -it 容器名:进入容器

        容器重新保存之后,进入容器,flag需要和之前一样
        docker删除容器:docker rm ContainerId(or container_name)
        docker删除镜像:  docker rmi ImageId(or image_name)




拉取镜像,开发,保存的操作:

1、拉取镜像:
  1. docker pull xxxxxx
复制代码


2、创建容器:示例:
  1. sudo docker run --name=yuyin --gpus all -it -p 6789:22 -v ~:/workspace -v /data3:/data3 --ipc=host --ulimit memlock=-1 --privileged --cap-add=ALL --pid=host registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.8.0-py38-torch2.0.1-tf2.13.0-1.9.5 /bin/bash
复制代码


        2.1、以交互方式进入容器:
  1. sudo docker exec -it container_name /bin/bash -il 或者 sudo docker attach container_name
复制代码


3、将容器转成镜像:
  1. docker commit container_name NewImage_name:New_Tag
复制代码


4、保存镜像至本地:
  1. docker save -o NewImage_name.tar NewImage_name:New_Tag
复制代码


5、使用保存至本地的镜像:
  1. docker load < NewImage_name.tar
复制代码



将用户添加到docker用户组:
  1. 1、sudo gpasswd -a username docker
复制代码
  1. 2、newgrp docker
复制代码



Docker指令解释
  1. docker run -it --name=auto-annotate -p 1888:1888 --gpus all --ulimit memlock=-1 --privileged --cap-add=ALL --ipc=host -u 0 -v ~:/app grounding-dino:v2
复制代码


1、docker run: 启动一个Docker容器。

2、-it: 分配一个伪终端,并保持标准输入打开以便与容器进行交互。

3、--name=auto-annotate: 为容器指定名称为 "auto-annotate"。

4、-p 1888:1888: 将容器的端口1888映射到主机的端口1888,允许通过主机访问容器中的服务。

5、--gpus all: 启用容器内的GPU支持,使其能够使用所有可用的GPU。

6、--ulimit memlock=-1: 设置内存锁定的软限制和硬限制为无限制,这在容器需要锁定大量内存时可能很有用。

7、--privileged: 赋予容器所有的特权,这意味着容器内的进程可以获得主机上所有的特权。

8、--cap-add=ALL: 将所有Linux特权添加到容器中,增加容器内进程的权限。

9、--ipc=host: 使用主机的IPC命名空间,这使得容器与主机共享进程间通信。

10、-u 0: 以用户ID 0 (root用户) 的身份运行容器。

11、-v ~:/app: 将主机上用户的主目录(通过~表示)挂载到容器内的 /app 目录,允许在主机和容器之间共享文件。

12、grounding-dino:v2: 使用的Docker镜像的名称及版本。






评分

参与人数 1鱼币 +3 收起 理由
yinda_peng + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-10 22:09:04 | 显示全部楼层
大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-8 14:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表