nvidia-docker使用手册
介绍
nvidia-docker 就是在docker上面多加了几层包装,如果你要调用cuda环境,就必须要用“nvidia-docker XXX”的指令形式进行操作,当然现在有的版本用“docker XXX”也可以实现对应的功能。docker可以理解为一个小的虚拟机,但是比虚拟机轻量,大部分人用就是拿来做环境隔离,这样不会影响到别人的环境,及时崩了还可以再开一个容器。
下面说一下几个概念:
1.镜像,镜像你可以理解为一个躺在磁盘里的程序,他是代码的集合,你动或不动他,他都躺在那里。
2.容器,容器可以理解为跑起来的进程。容器和镜像的关系就如同磁盘的程序和运行的进程。一个进程可以跑出很多个容器。
对应的,你修改好的容器,也可以保存成镜像。
使用流程
1.首先如果刚装好,是没有任何镜像的,那么你可以去docker hub 上下载环境适合的镜像。
docker pull [IMAGE_NAME]:[TAG]
如:
docker pull kaixhin/cuda-caffe:8.0
2.如果镜像已经下好了,那么就是启动对应的容器即可。
流程包含2.查看所有镜像,3.运行镜像。以及后续的对容器的操作,如下所示。
常用指令
1.启动/重启/暂停 docker服务, 一般除非更改docker环境才用得上
sudo service docker start/restart/stop
#只有开启docker服务才可以正常使用docker,服务相当于总进程
2.查看所有镜像
docker images
#显示所有镜像
3.运行镜像
nvidia-docker run -it -p 10029:22 -p 5009:80 -v ~/workspace:/root/workspace --name "ly_cu9.2pytorch1.3.1" --shm-size 15710886400 kaixhin/cuda-caffe:8.0
-i 交互模式运行
-t tty模式运行,进入终端
-p 端口映射 本地端口:docker内部端口 如:-p 5000:80
#必须设置80端口映射,否则在容器中下载会无法联网,如果有需要可以自行添加更多端口映射
-v 文件路径映射,使用文件方便 本地路径:docker内部路径 如:-v ~/longlongaaago/workspace/docker:/root/workspace
--name "启动后容器的名字" 如:"longlongaaago"
镜像id 或 镜像名字:tag 如: kaixhin/cuda-caffe:8.0
--shm-size memory size of the docker
4.容器状态下 退出
exit
5.查看正在运行的容器
docker ps
6.查看所有容器,包括睡眠容器
docker ps -a
7.开启睡眠中的容器
docker start ID/name
8.进入正在运行的容器
docker attach ID/Name
#此方式进入容器之后,exit 会将运行中的容器退出 不推荐
#必须在容器开启之后
9.进入正在运行的容器且不影响退出
docker exec -it id/Name /bin/bash
#以交互的方式进入正在运行的docker
#必须在容器开启之后
10.说明:
#运行之后 对于Docker来说,image是静态的,类似于操作系统快照,而容器(container)则是动态的,
是image的运行实例.容器(container),相当于进程;镜像可(image)以理解为躺在硬盘里的程序;
把更改后的容器(比如装了个软件等等)进行镜像保存,就是新的镜像了.
不过,容器(container)在运行退出(exit)之后,任然会保存之前的操作记录,只是区别在于不能像镜像
一样进行分发.
11.删除容器
docker rm 容器id
12.删除image
sudo docker rmi image_id
----------------------------------
上传镜像
1.save image
docker commit container_id images_name
2.如果没有登录就先登录,没账号就注册吧!==》https://hub.docker.com
docker login
3.按照提示输入用户名和密码,登录成功,然后上传自己的镜像,例如我要上传 xxxsdsaasd 镜像 (lualong 是我的要上传的账号,即改成对应的用户名)
docker tag xxxsdsaasd lualong/xxxsdsaasd
4.上传
docker push lualong/xxxsdsaasd
#注意,这里的lualong 是对应你账号的用户名,作为前缀进行上传
参考博客
2.docker 修改镜像配置参考
https://www.jb51.net/article/116873.htm