Docker-gpu的安装

写在前面

OS版本:centos7.5
Anaconda版本:3.5
一、Docker安装
安装教程链接:https://github.com/ufoym/deepo#GPU,执行如下图的Step1和Step2:
Docker-gpu的安装_第1张图片
Step1中的使用yum安装命令如下:

$ yum install docker
$ yum install nvidia-docker

二、Docker使用
1、首先在需要使用的地方创建文件夹,比如,我自己创建的文件夹名称是docker,然后在docker下面创建两个子文件夹data和config(必须是data和config)。

2、使用下面的命令运行镜像

 nvidia-docker run -it -p 8888:9999 --ipc=host -v /home/hdj/jupyter/docker/data:/data -v /home/hdj/jupyter/docker/config:/config ufoym/deepo bash

其中,-p 8888:9999的作用是将docker中的9999端口映射到服务器本地的8888端口。(这里的主要作用是,在之后会安装jupyter,给其指定端口号9999,但是jupyter的端口windows下不能直接访问,所以我们需要将其映射到服务器本地,这样在win下才可以访问)。/home/hdj/jupyter/docker/data:/data是服务器上刚创建的data目录地址,/home/hdj/jupyter/docker/config:/config是服务器上刚创建的config目录地址。ufoym/deepo是刚pull下来的镜像的名称。

3、拉取完毕之后,如果想要使用自己的容器(使用自己的容器,就相当于使用一个独立的系统,以后使用无论怎么更改都不会影响别人的容器,也不会影响docker外的系统),需要得到唯一的Docker Container ID,当安装完成后,可以在系统中使用sudo docker ps -a命令查看:
在这里插入图片描述
4、得到Container ID之后,使用下面命令进入Docker交互窗口:
sudo docker exec -it 757d542c43e5 /bin/bash
三、Docker常用命令
进入交互窗口之后,就可以像在Docker容器外面使用软件一样。

注: 将需要运行的程序文件存储在data文件夹下。

1、以运行python程序LSTM训练模型为例,若想使用深度学习模型,则需要安装tensorFlow-gpu,如果使用

sudo pip install tensorflow-gpu

则会提醒tensorflow-gpu已经安装过,所以我们不需要再次安装。若后台运行程序,只需要进入程序所在路径执行nohup python ***.py >log.txt 2>&1 &即可。
2、若查看已经运行的python程序,使用命令:ps –ef | grep python
3、若查看GPU使用情况,使用命令: nvidia-smi
4、查看GPU情况,并定时刷新情况:nvidia-smi –l
5、将容器重命名:docker rename new_name,如docker rename 9d9a30b563c9 lina
6、删除镜像:docker rmi ,使用sudo docker images可以查看所有镜像。
7、删除容器:docker rm -f ,使用 docker ps –a可以查看所有容器。
8、启动容器:sudo docker start -ia
9、若查看docker,发现docker的目录进不去,可直接使用sudo ls -al /var/lib/docker/containers查看containers中的文件,若查看containers的下一级目录,也可以使用类似的方法(ls -al后面必须使用完整路径)。
四、Docker下安装jupyter
首先进入docker,这里直接安装anaconda,比较方便。
1、安装jupyter
Step1:下载anaconda安装包

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.1.0-Linux-x86_64.sh

Step2:安装anaconda

bash Anaconda3-5.1.0-Linux-x86_64.sh

若提示安装位置,可以直接Enter,也可以指定目录,如下图所示:
接着会提示是否希望将PATH写入/root/.bashrc,输入yes。
之后,使用下列命令使.bashrc文件立即生效:

source ~/.bashrc

我们可以使用conda -V查看anaconda版本。
Step3:安装jupyter

 conda install jupyter notebook    

若已经安装成功,则不需要再安装,会有提示。
使用jupyter notebook查看是否docker内部jupyter可以启动成功。
2、配置windows下远程访问jupyter

Step1:安装和使用ipython

conda install ipython 

ipython 进入python shell交互

若进入成功,则说明ipython可正常使用。使用exit退出。
Step2:生成jupyter配置文件

jupyter notebook --generate-config

输出Writing default config to: /root/.jupyter/jupyter_notebook_config.py即表示生成成功。注意: 这一步是在docker内,不是在ipython内。
Step3:使用ipython生成密码
ipython //进入ipython交互模式

In [1]: from notebook.auth import passwd
In [1]: from notebook.auth import passwd

输入密码,会输出Out[2]: 'sha1:2a058da6fe75:fb78a12fbd27443b268f3b890fac016b74a38135',这串字符串会在配置文件中用到。
Step4:修改默认配置文件
vi ~/.jupyter/jupyter_notebook_config.py # 打开配置文件
添加如下内容:

c.NotebookApp.ip='*'    #设置所有ip都可以访问,即不限制ip
c.NotebookApp.password = u'sha1:2a058da6fe75:fb78a12fbd27443b268f3b890fac016b74a38135'     # sha1:2a058da6fe75:fb78a12fbd27443b268f3b890fac016b74a38135便是上面生成的一串哈希值
c.NotebookApp.open_browser = False     # 禁止自动打开浏览器
c.NotebookApp.port = 9999    # 指定一个端口,这里端口指定

9999,因为我们在运行docker已经将docker的9999地址映射到了服务器本地的8888端口
Step4:启动jupyter
使用下列命令启动jupyter:

jupyter notebook --allow-root

Step5:远程访问jupyter
访问地址:http://server_ip:8888,按照提示输入密码(刚ipython中输入的密码),登录就可以使用了。
五、docker目录迁移到其他磁盘
若docker的默认地址cent-root已满,需要将docker目录迁移到其他磁盘,则可使用以下操作(来自:docker 目录移动到其他磁盘的操作):

   1. systemctl stop docker #停止docker 
   2. mkdir /storage/docker-lib #在我这个项目里storage是普通硬盘,在storage下创建一个目录
   3. mv /var/lib/docker /storage/docker-lib #将var下的docker移动到/storage下 
   4.ln -s /storage/docker-lib/docker /var/lib/docker #创建软连接,将storage这个路径存到/var目录下
   5.这时候检查一下/var/lib/docker目录是否已经软连接到/storage/docker-lib ll /var/lib #查看对应软连接是否创建成功 ll /var/lib/docker 
   6.systemctl start docker #启动docker

你可能感兴趣的:(docker)