windows访问远程服务器上容器的几种直接方式

本文介绍了如何在远程服务器的Docker容器中使用SSH和VSCode进行访问,包括配置容器的SSH服务、端口映射以及在VSCode中设置SSH连接配置以跳转到容器,以便于通过JupyterLab进行交互。
摘要由CSDN通过智能技术生成

远程服务器 host上有一个docker container,如何通过 client 直接登陆 container 呢?

  1. container 使用 host 的网络,即使用了 --network=host

  2. 先配置 container的 ssdh(/etc/ssh/sshd_config),相关参数设置

    • port=2223 ##这个端口号不要跟本服务器其它Docker容器端口号重复!
    • PermitRootLogin yes
    • PubkeyAuthentication yes
    • PasswordAuthentication yes
  3. 通过 SSH + jupyterlab进行访问的方式:
    1)先CMD将 host 端的 port:9999 映射到本地8888(需要提前启动container)
    ssh -L 8888:localhost:9999 -N username@host_ip -p 4464
    2)通过本地 port:8888 访问 jupyterlab界面:网页端打开
    localhost:9999

    • jupyterlab 的访问端口为 9999
    • ssh 访问 host 的端口为 4464

    3)如果登录 host 没有端口限制(例如上面的4464),则上面两部可以简化为:
    host_ip:9999

  4. 完全通过 SSH进行访问的方式:
    1)先CMD登陆到 host 并映射 host端口到本地(第一个2248为映射的本地端口):
    ssh -L 2248:localhost:2243 -N username@host_ip -p 4464
    2)在另一个 CMD 窗口直接登录 docker
    ssh root@localhost -p 2248
    3)如果登录 host 没有端口限制(例如上面的4464),则上面两部可以简化为:
    ssh -p 2243 root@host_ip

  5. 通过 v s c o d e vscode vscode进行访问:
    1)设置 vscode 的ssh配置文件(C:\Users\username\.ssh\config),添加如下代码:

Host host1
  HostName host_ip
  Port 4464
  User username
  ForwardAgent yes

Host container1
  HostName localhost
  Port 2243
  User root
  ForwardAgent yes
  ProxyJump host1

如果登录 host 没有端口限制(例如上面的4464),则上面两部可以简化为:

Host container1
  HostName host_ip
  Port 2243
  User root
  ForwardAgent yes

2)如图所示,在vscode里面会出现 container1,登陆即可(保证container中已经启动ssh :/etc/init.d/ssh restart)
在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值