docker環境能為我們的代碼提供一個干凈的環境。此外,有些代碼對cuda版本要求不同,此時如果直接更換主機的cuda版本容易把顯卡搞崩,或者會影響之前的一些環境,因此在這些情況下建議利用dockerfile構建我們所需環境,達到一個環境隔離的目的。
構件好dockerfile后,我們希望能用在pycharm上部署docker鏡像解釋器以實現利用pycharm進行代碼調試等功能。
- 實驗環境
- pycharm專業版(注意只有專業版才能部署docker鏡像解釋器)
- 服務器:ubuntu 16.0.4
- docker:根據dockerfile構建好的nvidia-docker
1. 配置docker
為了使遠端服務器上的docker能與本機的pycharm進行連接和通信,需要在遠端服務器(你構建docker鏡像的那個服務器)上做一些設置,允許docker能被指定ip訪問
1.1 開放遠端連接
(1) 修改配置文件
vim /lib/systemd/system/docker.service
2. 將管理地址寫入/etc/profile
echo 'export DOCKER_HOST=tcp://0.0.0.0:2375' >> /etc/profile
source /etc/profile
重啟服務:
systemctl daemon-reload && systemctl restart docker
如果此時報錯:
Failed to allocate directory watch: Too many open files
解決方法
vim /etc/sysctl.conf
添加如下三行代碼
此外,在docker重啟前,大家一定要注意如果在docker環境中pip或者conda安裝了安裝包,一定在重啟docker之前將docker鏡像commit!!!!
具體操作為:
首先查看正在運行中的docker
docker ps
輸入下列指令提交新的docker鏡像
docker commit cd5869f0d3ca vaedocker:1.02
提交你剛才修改的鏡像,新的鏡像名稱為vaedocker,版本為v1.02
2. pycharm端配置
(1) 打開pycharm->file->settings->python interpreter->add->選擇docker