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

posted @ 2019-01-04 21:25  nrm1  阅读(1301)  评论(0编辑  收藏  举报