快速学习docker的使用和打包深度学习项目

1、安装docker和nvidia-docker

按照docker官网或者网上教程先后安装docker和nvidia-docker(建议按照官网的命令进行安装,若发生报错再去搜索如何解决)

2、编写Dockerfile

Dockerfile中的指令是用于创建镜像中的环境,即自己代码所依赖的运行环境,这一步非常关键,如果采用网上开源深度学习框架,一般会有现成的Dockerfile,只需要根据根据自己的需求修改一下即可。下面给出Dockerfile的示例,可以搜索对应的命令如FROM、RUN、WORDIR的含义:
快速学习docker的使用和打包深度学习项目_第1张图片

3、根据DockerFile去构建镜像并打包深度学习项目

镜像中包含了我们代码运行所需要的环境,一旦编写完Dockerfile与创建完镜像后,镜像中的环境就无法改变。若想改变镜像中的环境,则需要重新修改Dockerfile,重新创建镜像。若想将自己的深度学习项目根镜像一起打包,需要将自己的项目文件和Dockerfile放入同一个文件夹下,并在Dockerfile的结尾添加一行命令,将当前目录下的文件拷贝到镜像下的根目录下:

ADD .  /

创建docker镜像的命令,首先进入Dockerfile所在的目录:

docker build -t 镜像名[自定义] . 

镜像创建完成后可以使用命令行查看:

docker images

docker的镜像后面有一个tag标签,默认latest,可以在build镜像时自行指定
注意:镜像名后面的.不能丢,表明当前目录
构建镜像的过程比较漫长,通常需要,可以在DockerFile中修改镜像源加快包的下载,可以上网查找怎么修改。

4、关于Docker的一些命令(包括容器的创建与删除、镜像的删除等)

(1) 创建容器,并将本地文件夹映射到容器中。命令如下:

docker run -itd -v 本地路径:容器路径 --gpus all --name 容器名[自定义] 镜像名

其中-v用于映射路径,如需多次映射,在可以在上述命令中继续添加 -v和需要映射的路径;路径的映射是相互的,这意味这若修改本地路径的内容时,容器中对应路径下也会改变,反之在容器中修改也会同步到本地。这对于我们将代码运行结果导出本地是非常有帮助的。
其中–gpus all表示容器可以使用本地的GPU。

(2) 运行所创建的容器及相关操作:

运行容器时首先要保证容器处于激活状态,可以使用下面的命令行进行查看:

docker ps

使用下面的命令查看所有的容器:

docker ps -a

若容器未激活,则采用下面的命令激活:

docker start 容器名

也可以使用如下命令停止正在运行的容器(正常删除容器时,需要将容器先停止):

docker stop 容器名

删除容器的命令:

docker rm 容器名

(3) 进入处于激活状态的容器

docker exec -it 容器名 bash

进入容器后,就可以在根目录下查看自己的代码、相关路径的映射情况及代码测试等。

(4) 删除镜像

在删除镜像时通常需要删除由镜像创建个容器

删除镜像的命令:

docker rmi 镜像名

也可以强制删除镜像(可以免去删除容器的操作)

docker rmi -f 镜像名

(5) 将自己的镜像导出为.tar压缩包

docker save -o 压缩包名.tar 镜像名

(6) 加载打包好的镜像

打包好自己的镜像后,可以拷贝该压缩包到别的主机加载镜像

docker load -i 压缩包名.tar

加载完可以使用docker images进行查看,然后按照上述操作,进入容器测试代码

也可以将docker镜像上传到自己的docker hub上,具体操作可以自行上网搜索

你可能感兴趣的:(docker,学习,深度学习)