vscode通过跳板连接远程服务器docker容器

目的:深度学习不能在本机跑吧,丢服务器上,那怎么debug呢??曾经的我全靠print…

下载vscode,安装remote-ssh插件

不详细说了…

docker内配置ssh

  1. 在目标服务器里开一个docker容器,用-p把容器的端口22转到服务器的5222:
docker run --name 容器名字 -it -p 5222:22 --shm-size 64G  --rm --gpus all  -v 挂载目录 容器名字 bash
  1. 【远程服务器容器】设置 root 账户密码:
passwd root

根据提示设置密码即可。如果你启动容器的时候使用 -u 参数指定了一个非 root 用户,那么相应的要设置该账户的密码。

  1. 【远程服务器容器】很多镜像都不会默认安装 ssh,所以需要在容器内安装 ssh 服务:
apt update && apt install -y --no-install-recommends openssh-server
  1. 【远程服务器容器】一般进入容器时使用的都是 root 账号,但是 ssh 默认是禁止 root 账号使用密码远程登录的,所以需要修改 ssh 配置文件使其允许:
sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config

但是如果你启动容器的时候使用 -u 参数指定了一个非 root 用户,那么这步可以跳过。

  1. 【远程服务器容器】启动 ssh 服务:
 service ssh start

到此docker内准备完成了

在~/.ssh/里创建一个config文件

Host target
  HostName 目标服务器ip
  User root
  IdentityFile ~/.ssh/id_rsa1 #本机到目标服务器的密钥
  Port 5222  #目标服务器端口,因为docker的22转到了5222
  #LocalForward 6006 127.0.0.1:6666 这个是端口转发,目前不需要
  ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -W %h:%p -q jump
Host jump
  HostName 跳板机ip
  User 用户名
  IdentityFile ~/.ssh/id_rsa  #本机里到跳板的密钥文件
  Port 22  #jump端口

注意的是ProxyCommand的ssh要写全路径,同时你(本机)要有目标服务器的密钥文件,但是目标服务器里只加了跳板机的公钥,于是我机智的从跳板服务器把私钥下载到了本地哈哈…

vscode连接

vscode里点击左边的remote explorer,打开config,出现两个服务器,点击目标服务器连接,完成了…

借鉴了

https://blog.csdn.net/u010099080/article/details/104801858?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-12

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在 VS Code 中进行远程连接Docker 容器,您可以使用 Remote Development 扩展程序来实现。以下是简要的步骤: 1. 安装 Remote Development 扩展程序:在 VS Code 中搜索 Remote Development 扩展程序,并安装。 2. 启动 Docker 容器:使用 Docker 命令启动您要连接容器。 3. 打开远程窗口:在 VS Code 中,按下 F1 键,然后搜索 Remote-Containers: Attach to Running Container,并选择该选项。 4. 选择容器:在弹出的菜单中,选择要连接容器。 5. 连接容器:VS Code 将连接到您的容器,并在一个新的窗口中打开一个远程窗口。 现在,您可以像在本地机器上一样在 VS Code 中编写代码并运行它们,它们将在 Docker 容器中运行。 ### 回答2: 随着云计算技术的发展,Docker已经成为了一个非常流行的容器化技术,它能够帮助我们在不同的应用之间隔离开来,保证程序的安全性和可移植性。而vscode是一款非常流行的代码编辑器,它拥有丰富的扩展能力,可以帮助我们更加高效地编写代码,进行调试和代码管理,广泛应用于各种类型的编程领域。那么,如何在vscode中进行远程连接Docker容器呢? 首先,我们需要在本地安装Docker,如果你还没有安装,可以去官网下载并安装:https://www.docker.com/get-started。接下来,我们需要在Docker中创建一个新的容器,这个容器可以用来运行我们的代码,在创建容器时,我们需要将容器端口映射到主机端口。这可以通过在命令行中使用docker run命令实现。例如: ``` docker run -it --rm -v "$(pwd)":/workspace -p 8080:80 --name myapp nginx ``` 这个命令可以创建一个名为myapp的容器,将本地8080端口映射到容器的80端口。我们将会在这个容器中运行一个Nginx服务器。 接下来,我们需要使用vscode中的Remote Development扩展来远程连接到我们的容器中。这可以通过在vscode中使用Ctrl+Shift+P来调出命令面板,然后选择Remote-Containers:Attach to Running Container选项。在弹出的命令面板中,我们需要输入我们创建的容器的名称,然后按下回车键即可。接下来,vscode会在Docker镜像中创建一个新的容器,并在其中运行vscode。 对于Java开发者而言,vscode也提供了非常好的支持。Java开发者可以使用vscode中的Java扩展来开发Java应用程序。在远程连接Docker容器后,我们只需要在vscode中安装Java扩展,并配置好Java运行环境就可以开始在容器中开发Java应用程序了。 在vscode中进行远程连接Docker容器,可以帮助我们在本地进行开发,极大地提高了我们的开发效率,同时也能够保证程序的运行安全性。而随着云计算技术的不断发展,Docker容器化技术的应用也将越来越广泛。因此,掌握在vscode中进行远程连接Docker容器的技能,将会是未来云计算领域的必备技能之一。 ### 回答3: VS Code 远程连接 Docker 容器可让用户在容器内部开发和调试,而无需离开本地计算机。本文将介绍如何安装必备的软件和扩展,以及设置 Docker 和 VS Code。 步骤一:安装软件 安装 DockerDocker Compose。如果您已经在计算机上安装了这些软件,可以跳过此步骤。 步骤二:配置 Docker 首先,需要为 Docker 创建一个新的网络。在终端中运行以下命令: ``` docker network create <network-name> ``` 例如: ``` docker network create my-net ``` 然后,需要启动一个 Docker 容器。对于此示例,我们将使用 Node.js 映像。运行以下命令来启动容器: ``` docker run -itd --name <container-name> --network <network-name> <image> ``` 例如: ``` docker run -itd --name my-node --network my-net node ``` 此命令将创建并启动一个名为 my-node 的容器,并将其添加到名为 my-net 的网络中。 步骤三:安装 VS Code 扩展 在 VS Code 中安装 Remote Development 扩展,该扩展允许用户远程连接容器。 步骤四:连接容器 打开 VS Code 并单击左下角的“远程 Window”按钮。选择“连接到主机...”然后选择“SSH target”。通过“+ Add new SSH Target”按钮创建 SSH 目标。 在“主机”输入框中输入 Docker 容器的 IP 地址。在“端口”输入框中输入 SSH 基础映像的端口(默认为 22)。在“用户名”输入框中输入 SSH 用户名(默认为 root)。 在“密码”输入框中输入 Docker 容器的密码(如果已经设置了密码)。单击“连接”。 步骤五:开始开发 VS Code 现在将建立与远程 Docker 容器连接。完成后,用户可以通过 VS Code 完成端到端开发。 结论: 通过 VS Code 远程连接 Docker 容器使得开发和调试变得更加便利。遵循上述步骤,用户可以在 Docker 容器内部进行开发和测试,而无需离开本地计算机。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值