橦言无忌

一个不想改变世界的程序媛

vscode连接远程机器上的docker

前言

vscode连接远程机器上的docker,应用太多了,此处是用win的PC连接远程ubuntuPC上运行的docker,docker是基于ubuntu20.04的博客部署系统~

又一个利器~

1,前提

宿主机连接本机上运行的docker,并用vscode连接,详见宿主机上vscode连接本机docker

2,docker上的ssh配置

在docker中修改sshd服务的配置文件,即/etc/ssh/sshd_config,将端口号的配置项去掉注释即可。

1
Port 22

注意:docker使用的ssh默认的端口号22,映射到主机上的端口号是8022(详情见宿主机上vscode连接本机docker

3,远程主机(非docker)开放端口

此处主机上开放的端口是8022,也就是docker run时用来映射docker内22的端口,就不赘述了~

1
sudo iptables -I INPUT -p tcp --dport 8022 -j ACCEPT

4,测试连接

  • 配置免密访问
    密码登录请自行测试,为了方便,本文采用了密钥对来免密访问。

复制本机(我的路径是C:\Users\xinwen.ssh\id_rsa.pub)的公钥到docker的可信赖机器中(/root/.ssh/authorized_keys)。

  • ssh连接测试
    1
    2
    3
    4
    5
    # 本机连接远程主机
    ssh xinwen@192.168.1.18

    # 本机连接远程主机上的docker
    ssh root@192.168.1.18 -p 8022
    其中,192.168.1.18是远程主机的ip,xinwen是远程主机上的用户,8022是远程主机上开放给docker的端口,root是docker中部署了hexo博客系统的用户。

5,本机vscode上的插件

Remote-SSH

登录命令

1
ssh root@192.168.1.18 -p 8022

6,总结

docker(端口22)->远程主机(端口8022)->本机

本文中对应的系统:
ubuntu20.04->ubuntu20.04->windows

// 代码折叠