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