【docker 的基本使用】Vscode 连接远程服务器 中的docker

前置条件:
服务器上已经有nvidia-docker

1、创建容器

stu@XXX:~$ docker images #查看已有镜像
#可以看到Image ID 还有Repository 和tag 
#创建容器的容器的时候 可以用ImageID 或者 Repository:Tag 如:"pytorch/pytorch:1.9.1-cuda11.1-cudnn8-devel"

在这里插入图片描述

stu@XXX:~$ docker run -it --gpus all --name ymz --shm-size="2g" -p 8088:99 -v /data/ymz:/data/ymz pytorch/pytorch:1.9.1-cuda11.1-cudnn8-devel /bin/bash

-it表示交互式运行容器;
–name指定容器名;
–shm-size设置的是共享内存大小,根据需要设置,如果不设置的话,默认64M,训练深度学习模型的时候dataloader会报错提示共享内存不足;
-p是端口映射(主机端口:容器端口),-v是地址映射(主机文件夹:容器文件夹,注意必须用绝对路径);
镜像的RESPOSITORY:TAG;
进入容器后启动bash

参考:docker搭建pytorch环境

2、配置容器

服务器上的操作:

stu@XXX:~$ docker restart "容器名字/ID"
stu@XXX:~$ docker exec -it "容器名字/ID" /bin/bash  #进入容器 (exit容器时候不影响容器运行,也可以:docker attach "容器名字/ID" 但是exit会停止容器)
#进入到容器 开始一波install 后面远程连接要用
root@c19bdcee0db9:/workspace$ apt-get update
root@c19bdcee0db9:/workspace$ apt-get install openssh-server
root@c19bdcee0db9:/workspace$ apt-get install openssh-client
root@c19bdcee0db9:/workspace$ apt-get install ssh
root@c19bdcee0db9:/workspace$ apt-get install vim
root@c19bdcee0db9:/workspace$ passwd 
#创建密码 回头远程连接docker的用的是这个密码!!
root@c19bdcee0db9:/workspace$ vim /etc/ssh/sshd_config #修改ssh连接的设置

PermitRootLogin yes
port=99 #这个端口号一定要写创建容器时候写的 参数第二个端口号!
PubkeyAuthentication yes
PasswordAuthentication yes

启动docker中的ssh:
之后如果关掉这个docker容器,要记得重新运行 ssh : /etc/init.d/ssh restart

root@c19bdcee0db9:/workspace$ /etc/init.d/ssh restart
 * Restarting OpenBSD Secure Shell server sshd    
root@c19bdcee0db9:/workspace$ /etc/init.d/ssh status
 * sshd is running
 

本地电脑上可以测试一下连接服务器到这个docker:

ssh [email protected] -p 8088
#docker进去的root (不要用登录服务器的账户名 而是服务器中docker里面的账户名) -p 后面是端口号 和vim修改的不一样

3、vscode 配置
这种方式其实还是ssh 进入docker ?有博客分析了ssh进入docker的一些事情,但是考虑到这个里面我一个人用,所以问题不大
为什么不需要在 Docker 容器中运行 sshd

打开C:\Users"用户名".ssh\config输入:

Host "Name" #名字可以取 不影响连接
    HostName 10.69.48.169 #服务器ip 地址
    Port 8088 #服务器docker的端口
    User root #docker进去的root (不要用登录服务器的账户名 而是服务器中docker里面的账户名)

【docker 的基本使用】Vscode 连接远程服务器 中的docker_第1张图片
【docker 的基本使用】Vscode 连接远程服务器 中的docker_第2张图片

常用docker 命令
docker images #查看所有镜像
docker ps -a #查看所有容器
docker exec -it “容器名字/ID” /bin/bash #进入容器

用到新的再补

你可能感兴趣的:(docker,vscode,服务器)