【深度学习环境搭建<五>】深度学习中Docker开发环境的使用

0x00 下载镜像

我们要复现的项目一般都用pytorch或者tensorflow框架,可以直接基于现有的pytorch或者tensorflow的Docker镜像,然后再在里面安装其他的包。

下载地址:

  • pytorch:https://hub.docker.com/r/pytorch/pytorch/tags
  • tensorflow:https://hub.docker.com/r/tensorflow/tensorflow/tags

根据项目中的环境要求,选择相应的版本,然后pull下来,比如:

docker pull tensorflow/tensorflow:latest

如果提示:权限不够
尝试一:进入到docker组下面 newgrp docker
尝试二:查看是否在docker组下面,id <你的用户名>;如果不在docker组下面,联系我

注:以后运行docker报这个错都这么解决

0x01 创建新镜像

我们要在现有的镜像基础上再配置我们需要的python环境。

  1. 启动容器

    docker run --rm -it --runtime=nvidia <上面pull下来的镜像名称:镜像的tag> /bin/bash
    
    		参数说明:
    						--rm : 关闭终端就会将容器关闭,不用再手动清理了
    						-it  : 终端
    						--runtime=nvidia:此选项允许我们使用宿主机中的GPU和Nvidia Driver
    		可选项:
    						-v <宿主机上的路径>:<docker中要存放的路径> :可以将宿主机中的数据共享到docker的特定路径下,无论哪边修改数据都会同步
    
    
  2. 安装python包

    可以在第一步中启动的容器中安装python的各种包了(和在正常ubuntu系统一样)

  3. 保存我们的新镜像

    所有环境安装完以后,重新打开一个终端(刚才哪个终端不要关闭,关闭刚才配的环境就都没了)

    1. 查看上述运行的容器的容器ID

      docker ps -a
      

      在这里插入图片描述

    2. 制作新镜像

      docker commit <1中查询到的容器ID> 新的镜像名:tag
      
      eg: docker commit 3469f73a3db8 cvit:latest
      
    3. 查看是否创建成功

      docker images
      

      如果存在,则说明你创建成功

0x02 在Pycharm中使用镜像环境

具体步骤:

  1. 打开pycharm, 选择File→Setting

    【深度学习环境搭建<五>】深度学习中Docker开发环境的使用_第1张图片

  2. 在左侧菜单栏选择Project:xxx,然后选择它下面的Python Interpreter

    【深度学习环境搭建<五>】深度学习中Docker开发环境的使用_第2张图片

  3. 点击右侧Python Interpreter选项最右边的按钮,选择Add

    【深度学习环境搭建<五>】深度学习中Docker开发环境的使用_第3张图片

    【深度学习环境搭建<五>】深度学习中Docker开发环境的使用_第4张图片

  4. 选择左侧菜单栏的Docker选项

    【深度学习环境搭建<五>】深度学习中Docker开发环境的使用_第5张图片

  5. 然后点击右侧的New按钮(我这里已经加过了)

    【深度学习环境搭建<五>】深度学习中Docker开发环境的使用_第6张图片

  6. 配置一些信息,如图就行

    【深度学习环境搭建<五>】深度学习中Docker开发环境的使用_第7张图片

  7. 点击OK以后就会进行连接,连接成功后就可以选择你要使用的镜像和里面的python环境了。

    【深度学习环境搭建<五>】深度学习中Docker开发环境的使用_第8张图片

  8. 配置使用GPU
    上述步骤结束以后,运行时发现会报错,如下
    【深度学习环境搭建<五>】深度学习中Docker开发环境的使用_第9张图片
    找不到Nvidia Driver,这时我们需要修改docker的守护进程:/etc/docker/daemon.json
    向上述文件中添加一句:"default-runtime": "nvidia"
    修改后内容如下:

    {
        "default-runtime": "nvidia",
        "runtimes": {
            "nvidia": {
                "path": "nvidia-container-runtime",
                "runtimeArgs": []
            }
        }
    }
    
  9. 重启docker

    守护进程重启 sudo systemctl daemon-reload

    重启docker服务 systemctl restart docker

0x03 一些闲话

本人创建了一个公众号,分享科研路上的小问题,新发现,欢迎关注公众号,给我留言!!!
一起奋发向上,攻克难题吧~~

【深度学习环境搭建<五>】深度学习中Docker开发环境的使用_第10张图片

你可能感兴趣的