1.從阿里雲pull鏡像到服務器上
docker login --username=aliyun2120888823 registry.cn-hangzhou.aliyuncs.com
docker pull registry.cn-hangzhou.aliyuncs.com/nlp_mds/nlp:[鏡像版本號]
2.根據鏡像創造容器
sudo docker run -p [自選端口號]:22 --gpus all -itd --name [自己起個名字] -v [宿主機(本地)的目錄]:[自定義創建好的容器內的目錄] [image_name:tag] /bin/bash
for example:
sudo docker run -p 6666:22 --gpus all -itd --name nlp1.0 -v /mlspace/lyq/docker:/nlp registry.cn-hangzhou.aliyuncs.com/nlp_mds/nlp:1.0 /bin/bash
相關參數的說明:
-p [自選端口號]:22:同時將該容器映射到對應的端口號,並與22號端口進行關聯監聽;
–gpus all:指定該實例化的容器內可使用所有宿主機包含的gpu;
-i:保持STDIN開啟;
-t:分配一個偽終端;
-d:在后台運行
–name [自己起個名字]:為了避免記住冗長復雜的容器id,通常可為容器設置一個名稱,注意不要與現有的名稱相同;
-v [宿主機(本地)的目錄]:[自定義創建好的容器內的目錄]:為了讓容器內的文件與宿主機保持同步,可執行該參數,注意自定義創建好的容器內目錄必須是絕對路徑。
可能出現運行錯誤: docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]
原因:缺少了 NVIDIA Container Toolkit
# 1、添加源
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
# 2、安裝並重啟
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
3.開通端口
sudo /sbin/iptables -I INPUT -p tcp --dport 6666 -j ACCEPT
4.啟動容器
sudo docker start [容器id或自己起的名字]
sudo docker ps -a # 查看運行中的容器
5.進入容器
sudo docker exec -it [容器id或自己起的名字] /bin/bash
6.配置容器的ssh服務
1) 安裝ssh
apt-get update && apt-get upgrade
apt-get install openssh-server
2) 使用vim打開並修改配置文件
vim /etc/ssh/sshd_config
3) 將源文件中的PermitRootLogin、PasswordAuthentication和Subsystem注釋掉,並替換為下列內容:
PermitRootLogin yes
PasswordAuthentication yes
Subsystem sftp internal-sftp
4) 創建docker中root用戶的密碼
passwd root
5) ssh服務重啟
service ssh restart
驗證容器的ssh服務
# 服務器中查看是否有對應的端口
sudo netstat -ntlp
# 嘗試ssh連接
ssh [創建的用戶名]@[服務器地址] -p [自己定義的端口號]
pycharm通過ssh來連接服務器上的docker
1)python interpreter ===》add interpreter ===》選擇ssh interpreter
其中 host:服務器的ip,name:root,port:6666(即自己設定的端口),然后點擊next
2)輸入剛才設置的密碼,點擊next
3)選擇容器里的python環境(/opt/conda/bin/python),點擊finish
# 查看Python所在的目錄:
import sys
pythonpath = sys.executable
print(pythonpath)
查看GPU使用情況
nvidia-smi