• nvidia-docker操作命令


    # nvidia-docker安装部署以及操作手册
    前言
    docker和nvidia-docker的区别
    由于我们深度学习需要用到GPU,使用docker时,需要映射设备等等,docker容器对宿主机的依赖就会很多也就失去了便捷,并不能让我们很舒服的迁移环境,nvidia-docker则很好的封装了这些,只需要容器内的cuda版本和宿主机相同就行(这个要求很低了,而且这个要求现在也基本可以通过docker hub上别人做好的带有各种cuda版本的镜像来满足,所以几乎无要求)
    其实nvidia-docker只是run 和 exec命令和docker执行不同,其余的和docker执行的一模一样

    ## 1.卸载 nvidia-docker 1.0 及其他GPU容器

    ```
    $ docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
    $ sudo apt-get purge -y nvidia-docker
    ```

    ## 2. 添加package repositories

    ```
    $curl -s -L https://nvidia.github.io/libnvidia-container/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
    $ sudo apt-get update
    ```

    ## 3. 安装 nvidia-docker2

    ```
    $ sudo apt-get install -y nvidia-docker2
    $ sudo pkill -SIGHUP dockerd
    ```

    ## 4. 测试安装,查看显卡使用情况

    ```
    $ docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi
    ```

    ## 5.启动nvidia-docker服务

    ```
    $ systemctl start nvidia-docker
    $ systemctl status nvidia-docker
    ```

    ## 6.指定gpu启动

    ```
    $ NV_GPU=1 nvidia-docker run -v /matt/docker:/mnt $container --rm -ti matt/docker bash

    ```
    ## 7.容器改名

    ```
    $ sudo nvidia-docker tag A B (将A改名为B)

    ```
    ## 8.进入容器

    ```
    $ docker exec -it 容器名 /bin/bash

    ```
    ## 9.将容器保存为一个镜像

    ```

    $ docker commit containerId demo:v1.0 (新的镜像名称为demo,版本为v0.2)

    ```

    ## 10.使用镜像(进入镜像)

    ```
    $ docker run -it demo:v1.0 bash

    ```
    ## 11.docker中做端口映射

    ```
    $ docker run -it -d -p 0.0.0.0:5000 demo:v1.0 bash

    ```
    例:将容器的80端口映射到宿主机的8000端口上:

    ```
    docker run -itd -p 8000:80 demo:v1.0 /bin/bash

    ```
    ## 12.将宿主机的文件拷贝到容器中

    ```
    $ docker cp [-a] libcudart.so.9.0 clever_hawking:/usr/lib(clever_hawking是容器名,-a 是以打包的方式传)

    ```
    ## 13.将容器中的文件拷贝到宿主机中

    ```
    $ docker cp mycontainer:/opt/testnew/file.txt /opt/test/

    ```
    ## 14.docker容器查看ip地址

    ```
    $ apt-get install net-tools -y 安装net-tools
    $ ifconfig 然后利用ifconfig

    ```
    ## 15.容器管理

    ```
    docker ps : 列出正在运行的容器
    docker ps -a: 列出正在运行的和已经停止的容器
    docker rm 容器id:删除指定容器
    docker rm $(docker ps -a -q):删除所有已经停止的容器
    docker stop 容器id:停止运行指定容器
    docker start 容器id:启动指定容器
    sudo docker exec -it 容器名称 /bin/bash 进入到正在运行的容器中

    ```
    ## 16.镜像管理

    ```
    docker images :列出宿主机存在的所有镜像
    docker rmi 镜像id:删除指定镜像
    docker rmi -f 镜像id:强制删除指定镜像
    docker build -t 镜像名:版本 路径:根据路径下的Dockerfile文件创建一个镜像
    注:创建时会将指定路径下的所有文件都先上传,所以最好将Dockerfile文件放在单独的目录下。

    ```
    ## 17.导入镜像

    ```
    docker load : 导入使用 docker save 命令导出的镜像。
    例:docker load < line.tar

    ```

    众志成城,共抗疫情
  • 相关阅读:
    HDU 5495:LCS
    关于使用了cudaMallocHost之后发生 segment fault的原因
    关于grub 损坏的问题
    LightOJ
    LightOJ
    poj3268--Silver Cow Party (最短路+技巧)
    hdoj1443--Joseph (约瑟夫环)
    poj2549--Sumsets (sum)
    UVA11080
    hdoj1548--A strange lift(bfs.)
  • 原文地址:https://www.cnblogs.com/wuli1427102168/p/12418893.html
Copyright © 2020-2023  润新知