pycharm連接服務器上的docker容器


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM