nvidia-docker操作命令

摘要:
```##17.导入图像```dockerload:导入使用dockersave命令导出的图像。

# 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

```

免责声明:文章转载自《nvidia-docker操作命令》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇RAISERROR 的用法(转)蓝桥杯 最优包含下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

sudo配置临时取得root权限

sudo配置临时取得root权限系统中的普通用户有时需要root权限执行某种操作,要是使用su - root的话必须要知道root的密码,这是不安全的,所以有了sudo,root可以对/etc/sudoers做一定的配置,让普通用户在不切换到root的情况下,执行一些只有root才能执行的操作。这个文件只能root去修改,建议使用visudo这个命令修改,...

Dockerfile构建容器镜像

在Docker的运用中,从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低。所以就需要一 种文件或脚本,我们把想执行的操作以命令的方式写入其中,然后让docker读取并分析、执行,那么重复构建、更新将变得很方便,所以Dockerfile就此诞生了。Docker提供了Dockerfile作为构建Do...

Ansible安装并带您入门

一、简介 Puppet, SaltStack, Chef, Ansible都是服务器批量运维常用工具,其中Ansible最大的亮点在于”无客户端、简单易用和日志集中控管。”,不用帮每台机器 (instance) 预载 agent,只要有 SSH 和 Python 就可以。,本文介绍一下Ansible的基本使用。 二、结构 1、当 Control Mach...

docker安装db2数据库

查询可安装的db2镜像 # docker search db2 [root@docker-servers ~]# docker search db2 INDEX NAME DESCRIPTION S...

nginx njs docker 试用

主要是基于anadeeppolavarapu/nginx-http3:edge docker 镜像,使用比较简单 环境准备 docker-compose 文件 version: "3" services:    httpservice:        image: ranadeeppolavarapu/nginx-http3:edge      ...

MAC-下安装php-redis扩展

MAC下安装php-redis扩展 下载php-redis,地址:https://nodeload.github.com/nicolasff/phpredis/zip/master 下载完成得到phpredis-master.zip 移动到/usr/local/目录中 sudo cp phpredis-master/usr/local/ 进入/usr/l...