Dockerfile创建pytorch1.1.0+cuda10.0+cudnn7.5踩过的坑

1.写在前面的话

  • 零基础想要部署一个能用的gpu版本pytorch不容易,要注意devel和runtime的区别
  • 操作docker要格外小心,删除镜像的时候一定要注意了
  • 一定要会用docker hub,学会pull, push(没有试过)
  • 一定要分清楚image和container的区别,image就是一个可以公用的环境,里面有你build好的所有包(通过pip, yum, apt-get等安装),而container就是通过image run出来的实例,通过这个实例我们就可以进行后续的操作了

2.开始docker之旅

1.下载docker

  • 推荐下载docker版本:19+,这样在run的时候可以直接使用--gpus all来启动nvidia-docker,老版本需要使用nvidia-docker run

2.pull镜像

  • 运行docker pull去拉取pytorch镜像,由于我们要使用gpu版本的pytorch,所以pull的是含有cuda和cudnn的,此外需要安装devel版,不安则不能查看到gpu信息,并且不能对cuda进行编译,如果实际项目中需要使用cuda进行编译,则会失败

3.编写Dockerfile文件

  • Dockerfile是构建image最为重要的一步了,如果只是想test pytorch,那只需要写一句话:FROM pytorch/xxx
  • 如果想在image中安装其他的包,则使用RUN即可,注意区别windows,centos,linux等不同os下的安装命令,这个只有不断尝试才会懂得如何去编写
  • 还有很多命令,比如CMDCOPYWORKDIR,在具体的需求下我相信你会学会的
  • 还有一点,Dockerfile中的命令是分层build的,在不破坏原始build顺序下,docker会有cache机制,这样只有在有新的层出现时,才会重新build,节省时间
  • 最后,在终端输入命令:docker build -t image_name -f Dockerfile_path .即可完成image的build过程了,需要注意的是:①Dockerfile_path必须指定到文件,而不是目录;②最后有一个点哦,不要忘记了

4.运行镜像,创建容器

  • 直接运行命令:docker run -idt -v xx:xx -p xx:xx image_name即可完成容器的创建,并且idt由于是交互式后台运行的,所以会给出容器的id,如果需要使用gpu,则使用--gpus all
  • 如果你想进去到容器里,直接运行命令:docker exec -it id bash,当然了,你也可以不这么麻烦,直接运行命令:docker run -it -v xx:xx -p xx:xx image_name bash,如果你想在run的同时,进行容器内shell脚本的运行,直接在bash后跟上容器内的shell脚本路径即可,需要注意的是,这样做后,一旦shell文件执行完毕,就会直接关闭容器了

5.写在最后的话

  • 且行且珍惜
  • 有语义分割爱好者,可以联系[email protected]或者qq1355365561

猜你喜欢

转载自blog.csdn.net/qq_37285386/article/details/107673246