V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cloud2000
V2EX  ›  服务器

如何远程登录 WSL2 里面的容器?

  •  
  •   cloud2000 · 2022-10-17 09:55:08 +08:00 · 1817 次点击
    这是一个创建于 550 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在 WSL2 里面用 Docker 安装好了深度学习环境, 想用 Macbook 远程登录进去, 再用 vs code 开发. 目前已经搞定了 SSH 登录 WSL2, 但是 WSL 里面的容器不知道如何登录进去?

    14 条回复    2022-10-18 17:24:55 +08:00
    nyz1500
        1
    nyz1500  
       2022-10-17 10:05:29 +08:00 via iPhone
    在 MacBook 上装一个 docker ,然后在环境变量里添加 export DOCKER_HOST=ssh://user@[ip address]
    这样就能直接用 MacBook 上的 docker 命令控制远程服务器上的 container 了
    cloud2000
        2
    cloud2000  
    OP
       2022-10-17 10:12:32 +08:00
    @nyz1500 这么神奇...我试试....
    kindjeff
        3
    kindjeff  
       2022-10-17 10:16:32 +08:00
    楼主 WSL2 里面的深度学习环境还带容器,能正常用 CUDA 吗
    cloud2000
        4
    cloud2000  
    OP
       2022-10-17 10:17:35 +08:00
    @kindjeff 这个是好问题, 100%可以, 我已经训练几个数据集了.
    cloud2000
        5
    cloud2000  
    OP
       2022-10-17 10:18:30 +08:00
    @nyz1500 不过 WSL 里面没有对外的 ip 哦, 怎么填呢
    tbwisk
        6
    tbwisk  
       2022-10-17 10:21:17 +08:00
    @cloud2000 没有 zeroTier 解决不了的…如果有的话…………
    leeyuzhe
        7
    leeyuzhe  
       2022-10-17 10:27:50 +08:00
    @cloud2000 桥连或者 windows 端口转发出来啊
    quan01994
        8
    quan01994  
       2022-10-17 10:30:02 +08:00
    hyper 运行 docker 的镜像 ,docker 运行 container ? 你是要进 docker 还是要进,container ?
    cloud2000
        9
    cloud2000  
    OP
       2022-10-17 10:37:29 +08:00
    @quan01994 进 container..

    楼上几位说的端口转发我也想过, 就是想看看有没有更加简单的办法...
    AS4694lAS4808
        10
    AS4694lAS4808  
       2022-10-17 11:05:11 +08:00
    不是已经可以 ssh 了吗?那直接在 ssh 用 docker exec 命令?
    还是说要访问容器映射出来的端口?如果是这种情况,在宿主机用 netsh 的 portproxy 把 WSL2 ip 和端口映射到宿主机。
    brucmao
        11
    brucmao  
       2022-10-17 12:42:15 +08:00 via iPhone
    @cloud2000 wsl2 可以跟宿主机设置为同一网段的 ip ,由路由器分配
    nyz1500
        12
    nyz1500  
       2022-10-17 12:45:36 +08:00 via iPhone
    @cloud2000 ssh 用什么 ip 呢,这个方法就是使用 ssh 的连接,用你的 ssh ip 就好
    canbingzt
        13
    canbingzt  
       2022-10-17 14:04:28 +08:00
    DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"

    然后就可以用 windows 的 ip 来访问 docker 了
    cloud2000
        14
    cloud2000  
    OP
       2022-10-18 17:24:55 +08:00
    感谢各位, 问题最后解决如下, 希望能帮到其他人:

    我原来想复杂了, 只要从 Mac SSH 登录 WSL2 里面, 就全部成功了.
    因为可以把 vs code 的 ssh 目标设为 WSL2, 然后再在 vs code 里面 attach 到容器即可.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2478 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:41 · PVG 23:41 · LAX 08:41 · JFK 11:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.