一、docker安裝anaconda
1、到anaconda清華鏡像網站下載:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
注意版本:Anaconda2表示python2,Anaconda3表示python3。查看:https://blog.csdn.net/yuejisuo1948/article/details/81043823
2、如下載的是Anaconda3-5.3.0-Linux-x86_64.sh,則安裝的命令是 sh Anaconda3-5.3.0-Linux-x86_64.sh
3、更新環境變量
# source ~/.bashrc
# conda -V
4、安裝相關包:conda install 包名
如安裝jupyter notebook,詳細看一; conda install jupyter notebook
啟動:jupyter notebook
5、創建tensorflow環境:
-
conda create -n tf1 .13.1-py3.6 python=3.6
激活環境:source activate tf1.4-py3.6
查看conda有哪些環境:conda info -e
二、安裝jupyter
進入docker交互式環境:docker exec -it ***** bash
安裝jupyter:
- 安裝python dev包 :
apt-get install python-dev
- 安裝jupyter :
pip install jupyter [若pip沒安裝好,需要安裝sudo apt install python3-pip]
配置文件:
生成jupyter配置文件:
jupyter notebook --generate-config
使用ipython生成密碼
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:******'
- 到配置文件/root/.jupyter/jupyter_notebook_config.py中修改以下參數
c.NotebookApp.ip='*' #綁定所有地址,即所有IP 地址都可以訪問
c.NotebookApp.password = u'
'sha1:******
c.NotebookApp.open_browser = False #啟動后是否在瀏覽器中自動打開
c.NotebookApp.port =8100 #指定一個訪問端口8100,默認8888
c.NotebookApp.allow_remote = True #將遠程訪問設置成True
啟動:
jupyter notebook --allow-root
本機訪問:
- 查看docker IP,需安裝 apt install net-tools ,然后輸入命令ifconfig -a。
找到inet后的IP地址即為docker地址。如:inet 153.16.0.1
- 遠程訪問:http://153.16.0.1:8100即可。8100為配置文件時修改的啟動端口,若有密碼,即token= 后面輸入密碼。/
遠程訪問:
在啟動容器時,如果不配置宿主機器與虛擬機的端口映射,外部程序是無法訪問虛擬機的,因為沒有端口。
1、若沒有啟動容器時,即docker run -it ***,則可以通過以下命令指定容器8888端口映射成主機端口8000。-p 后面接主機端口:容器端口,-d表示后台執行,-it是進入交互式。
docker run -d -it -p 8000:8888 tensorlow_gpu:latest /bin/bash
【然后通過docker ps可以查看映射成功】
2、若容器已經執行了,即docker ps -a是存在的容器可以通過以下兩種方式:本人只成功了第一種:
(1)
-
- 提交一個運行中的容器為鏡像,先查詢該容器的ID *****,通過docker ps -a查詢,以下tensorflow1_13_1是自己取的新容器名字。
docker commit ****(containerid) tensorflow1_13_1
-
- 運行鏡像並添加端口
docker run -d -it -p 8000:8888 tensorflow1_13_1 /bin/bash
-
- 進入docker 中,docker exec -it *****(新容器ID,docker ps -a查詢) bash
- 啟動jupyter notebook,jupyter notebook --allow-root,默認端口8888
- 遠程訪問jupyter,瀏覽器中輸入網址:主機IP+映射端口8000,即http://11.161.112.1:8000
(2)試得不成功,沒理解inspect ,過后再補
http://www.yinxi.net/doc/show.php?DocID=10732
1、獲得容器IP
將container_name 換成實際環境中的容器名
docker inspect `container_name` | grep IPAddress
2、 iptable轉發端口
將容器的8000端口映射到docker主機的8001端口
復制代碼 代碼如下:
iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000
三、安裝tensorflow
1、安裝cuda和cudnn
只要把cuDNN文件復制到CUDA的對應文件夾里就可以,即是所謂插入式設計,把cuDNN數據庫添加CUDA里,cuDNN是CUDA的擴展計算庫,不會對CUDA造成其他影響。
(1)注意顯卡型號:
輸入命令lshw -c video
,查看顯卡型號driver version。找到對應的cuda版本下載。
看到以下這些結果表明支持nvidia以及顯卡類型為GP102 [TITAN Xp]
product: GP102 [TITAN Xp]
vendor: NVIDIA Corporation
(2)安裝顯卡驅動
去NVDIA driver search page搜索你的顯卡需要的驅動型號並下載(如圖)。
或者輸入命令查詢可用 驅動版本:ubuntu-drivers devices
要想安裝440:sudo apt install nvidia-440
測試安裝成功:輸入
nvidia-smi命令測試是否有結果
(3)安裝cuda
如果訓練中用到了 tensorflow,應該確認一下 cuda 版本與 tensorflow 版本的兼容性問題
https://tensorflow.google.cn/install/source#linux
確定安裝cuda10.0+cudnn7.4+tensorflow1.13.1
cuda下載地址:https://developer.nvidia.com/cuda-toolkit-archive
根據命令安裝cuda
(4)安裝cudnn
https://developer.nvidia.com/rdp/cudnn-archive
下載對應版本的tgz文件Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 10.0,然后解壓 tar xfz cuDNN v7.4.2 (Dec 14, 2018), for CUDA 10.0.tgz.
將解壓出來的文件夾中的include文件夾和lib64文件夾內容全部復制到已經安裝的cuda相對應的文件夾(一般在/usr/local/cuda-10.0)中。
(5)安裝tensorflow1.13.1
如果直接輸入pip install tensorflow-gpu=1.13.1,下載速度及其慢。
可以換源:python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.13.1