远程服务器 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
  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
  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 host_ip
  Port 2243
  User root
  ForwardAgent yes
  ProxyJump host1

2)如图所示,在vscode里面会出现 container1,登陆即可(保证container中已经启动ssh :/etc/init.d/ssh restart)
windows访问远程服务器上容器的几种直接方式-LMLPHP

03-21 13:16