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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM