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
posted @ 2022-04-11 15:57  嘎吱嘎吱脆  阅读(833)  评论(0编辑  收藏  举报