一般可以按照实验室GPU指南pdf来创建自己的docker,用的docker-compose搭建(不是用命令行docker run),很简单的。
docker常用命令和学习:
Docker 入门教程 阮一峰
http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
Docker中文书
https://yeasy.gitbooks.io/docker_practice/compose/introduction.html
安装了Linux(不管是虚拟机还是docker),上来先update
, upgrade
一波~
docker-composer文件里没有加privileged= true
,以至于权限不够。
使用该参数,container内的root拥有真正的root权限。可以执行mount,甚至允许你在docker容器中启动docker容器。
否则,container内的root只是外部的一个普通用户权限。
记录一下我在实验室GPU服务器上的创建ubuntu的Docker过程:
基于这篇文章改进的:https://blog.youkuaiyun.com/qq_34021712/article/details/73379851
- 基于现有的ubuntu16.04的image,改写了游大佬写的docker-compose.yml,改了几个端口映射,加了一句
privileged= true
然后生成container。 - 先用
docker exec -it [container ID] /bin/bash
进入我的ubuntu容器 passwd
修改ubuntu的密码- apt-get update,完了安装apt-get install openssh-server
- 修改下面的文件,将四个选项去掉#注释,即启用:
vi /etc/ssh/sshd_config
port=22 #开启22端口 RSAAuthentication yes #启用 RSA 认证 PubkeyAuthentication yes #启用公钥私钥配对认证方式 AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径(和上面生成的文件同) PermitRootLogin yes #root能使用ssh登录
- 重启ssh服务
/etc/init.d/ssh restart - 配置openssh-server开机自动启动
打开/etc/rc.local文件,在exit 0语句前加入:
/etc/init.d/ssh start - 然后用SecureCRT 连就好了!
- 保存一下image,下次就不用这样改了
docker commit [container ID] zhang:1.0
jupyter notebook的远程连接问题都快把我搞哭了
我的ubuntu的docker,能用了以后,因为游大佬预装了conda等,所以我就直接按照
https://www.jianshu.com/p/8fc3cd032d3c 里面的:方法2. 利用jupyter notebook自带的远程访问功能
- 生成默认配置文件
jupyter notebook --generate-config- 生成访问密码(token)
终端输入ipython,设置你自己的jupyter访问密码,注意复制输出的sha1:xxxxxxxx密码串
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: ‘sha1:xxxxxxxxxxxxxxxxx’- 修改./jupyter/jupyter_notebook_config.py中对应行如下
c.NotebookApp.ip=’*’
c.NotebookApp.password = u’sha:ce…刚才复制的那个密文’
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口
- 在服务器上启动
jupyter notebook --allow-root --ip=0.0.0.0 --port=8888
【不能在隐藏目录 (以 . 开头的目录)下启动 jupyter notebook, 否则无法正常访问文件。】 - 打开 IP:指定的端口(我docker映射是- ‘24007:8888’ # 备用), 输入密码就可以访问了!!贼嗨皮
我敲conda没反应,因为没配置PATH,方案如下:
系统级修改路径:vi /etc/profile
用户级修改路径:vi /root/.profile
(root也算用户,所以我改的是这个,影响小一点。。)
都是最下面添加一行 export PATH=~/anaconda3/bin:$PATH
最后一定要刷新:source /root/.profile
或者source /etc/profile
然后就能用了!