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
  • -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

在这里插入图片描述

3. 在容器中安装SSH服务

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

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

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

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

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

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

在这里插入图片描述

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

在这里插入图片描述

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

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

0. 前提条件

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

在这里插入图片描述

  • 26
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答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 容器内部进行开发和测试,而无需离开本地计算机。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值