连接wsl2 docker中的容器

一、声明

  docker容器不包括操作系统, 可以将容器看作一个应用, 远程连接容器的本质是远程连接容器所在的机器。通过端口号访问容器提供的服务。个人理解,欢迎纠正。

二、准备工作

1、获取wsl2的ip地址

  运行下面命令

ip addr 

连接wsl2 docker中的容器
  其中eth0中的172.21.192.44是wsl2的ip地址.

2、容器内安装ssh server并修改配置文件

sudo apt-get purge openssh-server  # purge 是卸载并删除配置文件
sudo apt-get install openssh-server   # 安装ssh 服务器
service ssh status   # 查看ssh服务启动情况
service ssh start   # 启动ssh服务

  注意:service ssh start而不是service sshd start,
  虽然sshd才是服务器, 而ssh是客户端, 但/etc/init.d/sshd start已经无效了,
  cd /etc/init.d/进去是没有sshd的, 只有ssh这是正常的,实际上ssh里的内容也是启动sshd服务的

  修改配置文件/etc/ssh/sshd_config

PermitRootLogin  值修改为 yes
PasswordAuthentication 值修改为 yes 
Port 值修改为2222 (22端口比较特殊, windows可能会使用到)

  随后service sshd restart重启ssh服务.

3、设置容器内的账户密码

passwd 账户名

  用来之后远程连接

  按理说: 设置wsl2的账户密码 == 设置容器内的账户密码?

4、打包容器

  容器打包为镜像,方便后续使用.
  运行打包好的镜像, 做好端口映射.

docker run -itd -p 2222:2222 容器id bash
第一个ip是wsl2的ip, 第二个ip是容器的ip

三、远程连接容器

ssh root@ip -p 端口
上一篇:wsl2启动多个同类虚拟机


下一篇:VSCode 如何远程连接其他主机的 WSL2