• ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(二)


    ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(二)

    本教程适用于想要在远程服务器上配置docker图形界面用于深度学习的用户。

    (二)nvidia docker配置Deepo用于深度学习并配置ssh远程访问docker

    第一步:拉取Deepo镜像

    Deepo是一个几乎包含所有流行深度学习框架的Docker映像,拥有一个完整的可复制的深度学习研究环境。它涵盖了当前最流行的深度学习框架:
    theano,tensorflow,sonnet,pytorch,keras,lasagne,mxnet,cntk,chainer,caffe,torch

    换国内镜像源:

    输入指令:sudo vim /etc/docker/daemon.json

    修改内容为:

    1 {
    2     "registry-mirrors": ["https://registry.docker-cn.com"],
    3     "runtimes": {
    4         "nvidia": {
    5             "path": "nvidia-container-runtime",
    6             "runtimeArgs": []
    7         }
    8     }
    9 }

    保存并退出。

    拉取Deepo镜像:

    输入指令:docker pull ufoym/deepo

    待下载完成后输入指令:sudo nvidia-docker run --rm ufoym/deepo nvidia-smi检测镜像是否能成功加载。(不报错即为成功)

    第二步:配置Deepo镜像中的ssh服务

    本教程配置的Deepo镜像中系统版本为Ubuntu 16.04.5 LTS,本身不带ssh服务,需自行配置,配置方法如下:

    开启docker:
    1 sudo nvidia-docker run  #nvidia-docker启动容器命令
    2    -it                 #启用前端交互界面
    3    -p 10000:22       #配置端口号(10000为主机任意空闲端口,22为容器中ssh服务端口)
    4    ufoym/deepo       #选择要启动的镜像
    5    bash            #加载一个bash用于交互
    容器内换国内镜像源:

     1 cp /etc/apt/sources.list /etc/apt/sources.list.old 

     2 vim /etc/apt/sources.list 

    修改为以下内容:

     1 deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
     2 deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
     3 deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
     4 deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
     5 ##测试版源
     6 deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
     7 # 源码
     8 deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
     9 deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
    10 deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
    11 deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
    12 ##测试版源
    13 deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
    14 # Canonical 合作伙伴和附加
    15 deb http://archive.canonical.com/ubuntu/ xenial partner
    16 deb http://extras.ubuntu.com/ubuntu/ xenial main

    保存后退出

     1 apt-get update 

    安装ssh:

     1 apt-get install openssh-server

     2 vim /etc/ssh/sshd_config 

    找到以下内容并修改如下所示:

     1 # PermitRootLogin without-password #add '#'

     2 PermitRootLogin yes #add 

    保存并退出

     1 service ssh start 

    输入指令:ps -e |grep ssh检查ssh是否成功安装并开启:

    修改root密码:

    passwd root

    输入密码并确认密码

    之后输入指令:exit #退出容器

    保存安装ssh后的镜像:

    输入指令:sudo docker ps -a

    显示当前运行过的容器,找到刚才配置过ssh的CONTAINER ID(如果完全按本教程的步骤的话应该是第一个),比如是4e67fae0d525。

    输入指令:sudo docker commit 4e67fae0d525 ufoym/deepo:ssh 即可保存该镜像。

    输入指令:sudo docker images即可查询所有镜像。

    检测该镜像ssh是否能否正常使用:

    开启容器:sudo nvidia-docker run -it -p 10000:22 ufoym/deepo:ssh bash

    确保ssh服务正常启用:ps -e |grep ssh(没有的话手动启用service ssh start)

    远程访问指令:ssh root@IP地址 10000 输入root密码即可远程连接进入容器

    目前的配置已经满足深度学习的需求了,下一期将介绍如何在现有基础上在docker中配置远程桌面连接。使不熟悉终端操作的用户也能方便使用docker。

    本期参考教程:

    拉取镜像:https://blog.csdn.net/qiansg123/article/details/78559085

    Ubuntu换源:https://blog.csdn.net/qq_35451572/article/details/79516563

    安装ssh:https://jingyan.baidu.com/article/9c69d48fb9fd7b13c8024e6b.html

    构建镜像:https://blog.csdn.net/hylexus/article/details/52854470

  • 相关阅读:
    计算两个日期之间相差多少个小时
    split 函数自己实现
    C++ Primer 读书笔记: 第9章 顺序容器
    C++ Primer 读书笔记: 第8章 标准IO库
    数据库常用操作整理
    学习使用GitHub(一)--之入门
    install intel c/c++ compiler
    /usr/include/features.h:367:25:fatal errorXXXXXX类似这种问题
    分页获取用户视图数据列表View_UserInfo
    客户端获取Cookie
  • 原文地址:https://www.cnblogs.com/nrm1/p/10219434.html
Copyright © 2020-2023  润新知