Vscode连接远程服务器中的docker容器进行开发(两种方法)

方法一:使用ssh服务远程连接容器

0. 前提条件

  • 本地windows或其他环境中安装了Vscode,Vscode中安装了Remote-SSH拓展(用于利用SSH连接docker容器)
  • 远程服务器中安装了docker,并且拉取了自己需要的镜像(image)
  • 有root权限,能使用sudo命令

完成以下过程,可以像本地开发一样,对容器进行开发和测试。

1. 在服务器端启动Docker容器

docker run -itd -p 10008:10008 -v /dev/shm:/dev/shm --name huawei  --runtime=nvidia swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-cuda11.1:1.10.1 /bin/bash
  • 1
  • -itd: 分别表示以交互式模式、分离模式(在后台运行)以及为容器分配一个终端。

  • -p 10008:10008: 这将主机的端口 10008 映射到容器的端口 10008,以便可以通过主机的端口访问容器内的服务。 重点配置,同时用于后续VScode访问。

  • -v /dev/shm:/dev/shm: 这将主机的 /dev/shm 目录挂载到容器的 /dev/shm 目录,为了共享内存可以不指定

  • –name huawei: 这为容器指定了一个名称,即 “huawei”。

  • –runtime=nvidia: 这表示使用 NVIDIA GPU 的运行时。一般项目可不指定

  • swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-cuda11.1:1.10.1: 这是容器镜像的名称和版本,指定了使用的 MindSpore 版本。

  • /bin/bash: 这是在容器中要运行的命令,即启动一个 Bash shell。

2. 进入刚刚启动的docker容器

# 查看正在运行的镜像
docker ps -s
# 进入docker容器
docker exec -it <容器ID> /bin/bash
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

3. 在容器中安装SSH服务

apt-get update
apt-get install openssh-server
apt-get install openssh-client
apt-get install ssh
apt-get install vim
  • 1
  • 2
  • 3
  • 4
  • 5
  • 接着修改ssh文件信息,将容器的10008端口暴露出来允许root用户使用ssh登录
vim /etc/ssh/sshd_config
  • 1
# 在刚刚打开的文件里添加以下内容,保存后退出:
Port 10008
PermitRootLogin yes #允许root用户使用ssh登录

  • 1
  • 2
  • 3
  • 4
  • 重启ssh服务
/etc/init.d/ssh restart
  • 1
  • 设置root用户连接密码
passwd
  • 1

4. 在容器中设置开机自启动SSH服务

  • 在 Docker 容器内运行 SSH 服务时,当容器停止后 SSH 服务会随之关闭,而当容器重新启动后 SSH 服务默认情况下不会自动重启。这是因为 Docker 容器本身是一个隔离的环境,容器内的服务与主机环境是相互独立的。本操作可以用以解决restart容器后使ssh自动启动,从而不影响远程连接。
# 找到并打开文件/root/.bashrc
$ vim /root/.bashrc
# 在.bashrc末尾添加如下代码
$ service ssh start
  • 1
  • 2
  • 3
  • 4

5. 在VScode中进行配置,连接docker

  • 在vscode中shfit+ctrl+p,输入如下字符,配置ssh文件(vscode需安装remote-ssh拓展)
Open ssh
  • 1

在这里插入图片描述

  • 在Configuration中添加:
Host <name>
  HostName <服务器IP>
  Port 10008
  User root
  ForwardAgent yes
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

  • 此时可以通过Vscode连接远程服务器的10008端口,由于在启动容器时,设置了端口映射,所以在连接服务器10008端口后,服务器将自动转发到容器的10008端口。
  • 点击左下角蓝色图标,选择connect remote host
    在这里插入图片描述
  • 选择刚刚加入的配置HOST,输入密码进入容器内部
    在这里插入图片描述
    此时已经进入容器内部,可以像在本地和远程服务器一样进行容器内部的开发与测试了。后续可以将测试完成的容器重新打包为镜像。

在docker中创建.ssh免密登陆

ssh-keygen -t rsa

进入.ssh

touch authorized_keys

将本机公钥填入



方法二:使用Vscode中的Docker拓展,基于服务器访问容器

0. 前提条件

1. 即可以查看和修改容器信息

在这里插入图片描述




Vscode连接远程服务器中的docker容器进行开发(两种方法)_vscode连接远程服务器的docker容器-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值