【Vscode 远程连接 Docker 容器】

1. 配置docker镜像

  • 在主机目录下创建一个 Dockerfile,注意文件名必须保持一致!!!(默认装了docker)

  • ubuntu:22.04 镜像

docker pull ubuntu:22.04
  • Dockerfile
FROM ubuntu:22.04

# Update package list and install sudo
RUN apt-get update && \
    apt-get install -y sudo && \
    rm -rf /var/lib/apt/lists/*

# Create a new user
RUN useradd -m cauchy && \
    echo 'cauchy:****' | chpasswd && \                          # 这里有user的密码,待会用于vscode的登入
    adduser cauchy sudo

# Set the working directory to /home/cauchy
WORKDIR /home/cauchy

# Set the user to cauchy
USER cauchy

# Start a shell session
CMD ["/bin/bash"]

  • 运行容器,映射端口:(主机7000:容器22)
docker built -t ubuntu:22.04 .
docker run -itd -p 7000:22 --name dockername ubuntu:22.04
  • 进入容器
docker attach dockername 

2. 安装 OpenSSH

  • 在 Docker 容器中安装 SSH 服务:
sudo apt-get install -y openssh-server
  • 启动 SSH 服务:
service ssh start
  • 修改 SSH 配置文件 /etc/ssh/sshd_config,将 PermitRootLoginPasswordAuthentication 分别设置为 yes
PermitRootLogin yes
PasswordAuthentication yes
  • 放开 22 端口
Port 22
  • 重启 SSH 服务:
service ssh restart

3. Vscode中安装 Remote-SSH 插件:

在这里插入图片描述


4. 配置连接信息

  • 在 VSCode 中按下 F1 键,输入 “Remote-SSH: Connect to Host…”,选择 “Add New SSH Host…”

  • 在弹出的对话框中填写以下信息:(括号内替换)

    • Host Name: hostname@IP -p Port
    • User Name: username
    • Password: password
  • 生成如下信息:(C:/用户/.ssh/config)

    • Name: 当前连接的名称(随意)。
    • IP:连接主机的IP地址,你的服务器IP。
    • UserName:容器内的用户名。
    • Port:主机映射的端口(上述即:7000)。
Host (Name)
  HostName (IP)
  User (UserName)
  Port (Port)

5. 免密登录

ssh-keygen 生成密钥后,将 id_rsa.pub 文件拷贝进docker容器内的 ~/.ssh/authorized_keys 文件中即可。


【可能会遇到的问题】

  • 【之前连接成功过,后来就怎么都连不上去了】

先重启一下服务器的ssh服务:

sudo service ssh stop
sudo service ssh start

遇到的问题可能是因为:

这个错误提示意味着您之前连接到的主机的密钥已经发生了变化,可能是由于主机的操作系统或网络配置发生了更改。这可能是一种恶意攻击,也可能是您连接到的主机更换了新的密钥。

这里我遇到的问题是,主机更换了新的密钥,所以再次从vscode连接过去,公钥认证就不匹配了,所以不能在重新连入docker容器内。

删除 C/用户/.ssh/目录下的 known_hosts 文件中,旧的公钥 [主机IP]:port

在这里插入图片描述

将这段直接删除即可,然后重新进行本文的连接操作。又可以愉快的玩docker了~~

【~~容器最好是一直在运行着,但凡重启或停止过,就需要重来一遍才可能连上】


  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

ღCauchyོꦿ࿐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值