因为非计算机科班出身,在这里仅对自己对于docker的理解做一些些介绍。因为原服务器/usr/local/cuda这个文件夹找不到因此程序运行过程中会出现很多奇怪的错误,在学长推荐下转战docker,发现docker还是蛮好用的,因为docker在我们的服务器上是装好的在这里仅对于docker的使用进行说明。。
环境与容器
个人感觉docker创建的容器就像类似于一台虚拟机一样的东西,不过在容器内同样是可以使用显卡的,进入docker容器后,我们创建的容器就跟一台新的机器没差,同样可以在容器中使用anaconda配置环境,也是一样的操作命令,感觉docker创建容器就是给你开了一台属于自己的服务器然后anaconda仍然可以在这台主机上被安装,且并不影响宿主机。
输入docker指令时有时候宿主机会因为权限不够报错,此时只要在原来docker指令前加sudo就可以不报错了。
容器镜像下载
docker pull
首先进入docker hub,这是一个在线的docker仓库,可以在这个仓库中搜索所需要的镜像,以pytorch为例:
一般选择下载量最多的就可以,点进去根据Tag选择自己所需要的版本。
复制如箭头所指的指令到宿主机,即可下载当前所需要的镜像,接下来我们再介绍两个命令:
docker images
查看当前宿主机内的镜像
docker ps -a
查看宿主机内的容器
docker ps
查看宿主机内启动的容器
镜像就像种子,可以由镜像创建出无穷多的容器,而这些容器都是可能环境被配置好的,因此可以直接使用其他好心人配置好的环境,所以使用docker在配置环境时非常方便。
我们使用docker images 命令查看当前宿主机内的镜像:
使用镜像来创建容器,使用以下指令来创建一个新的容器
docker run -it --name 容器名 镜像名:版本号 /bin/bash
我们使用如下命令创建一个名称为kangxxx_pt_16的pytorch1.6.0的容器
docker run -it --name kangxxx_pt_16 pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel /bin/bash
查看当前所有的容器
docker ps -a
进入容器
进入容器的方法有很多种,我们仅对一种方法进行说明:
step1: docker start 容器名/ID
首先启动容器
step2: docker attach 容器名
实现容器的进入
文件传输
进入容器后我们相当于在一台新的电脑上,我们的文件只能通过宿主机向容器中进行文件的传输,虽然好像可以共享文件但是自己目前还不是很会,会了再来更。
docker cp 服务器文件路径 容器名:容器路径
使用如上命令实现宿主机文件向容器文件的上传
示例所示的容器kangxxx_pt_16是可以直接使用conda的,因此使用上非常的方便。而且多个容器中,文件互不影响,因此多用户使用一台服务器非常方便。
删除容器以及镜像
docker rm +容器名
删除容器
docker rm +镜像名:版本号
删除镜像
退出docker容器回到宿主机
exit
总结
docker一些常见命令的使用,引用请注明出处。如有错误欢迎批评指正,一起学习,共同进步。