V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
GTD
V2EX  ›  问与答

外部电脑,如何访问 docker 容器内的 ip 地址?

  •  
  •   GTD · 2020-11-25 00:22:21 +08:00 · 2714 次点击
    这是一个创建于 1457 天前的主题,其中的信息可能已经有所发展或是发生改变。
    楼主现在在 docker 弄了个 wordpress,然后映射到本地 80 端口,然后用本地 ip 可以访问

    但是楼主想直接用外部电脑,直接访问 docker 容器,而不是通过映射的方法,有办法可以实现吗?

    楼主尝试用 docker inspect wordpress,显示的 ip 地址输入到浏览器中去,并没有任何效果,而且每次地址都是:172.17.0.3


    有大佬知道要怎么操作吗?感谢
    15 条回复    2020-11-25 10:50:52 +08:00
    jj783850915
        1
    jj783850915  
       2020-11-25 00:26:06 +08:00 via Android
    路由表试试?
    wunonglin
        2
    wunonglin  
       2020-11-25 00:38:06 +08:00   ❤️ 1
    --network host
    GTD
        3
    GTD  
    OP
       2020-11-25 00:46:42 +08:00
    @wunonglin #2 这个怎么用呀
    FireFoxAhri
        4
    FireFoxAhri  
       2020-11-25 00:48:44 +08:00 via Android
    inspect 看到的 ip 应该是可以直接访问的
    GTD
        5
    GTD  
    OP
       2020-11-25 00:50:14 +08:00
    @FireFoxAhri #4 诶 不行啊,只有映射过后才能访问,而且我几台机器,inspect 后的地址都是 172.17.0.3
    GTD
        6
    GTD  
    OP
       2020-11-25 00:51:46 +08:00
    @FireFoxAhri #4 哦哦 你说的是 localhost 可以访问是吧,那应该可以的,我想的是全局访问
    GTD
        7
    GTD  
    OP
       2020-11-25 00:51:56 +08:00
    算了 放弃了

    就这样吧
    woshijidan
        8
    woshijidan  
       2020-11-25 00:55:36 +08:00 via Android
    创建 docker 时监听母鸡端口并转发到 docker 的端口
    francis59
        9
    francis59  
       2020-11-25 00:56:31 +08:00   ❤️ 1
    如果是用的默认的桥接方式映射的端口,那就直接用 host 机的 IP 地址访问
    FireFoxAhri
        10
    FireFoxAhri  
       2020-11-25 00:58:45 +08:00 via Android
    @GTD 如果是 Windows 访问 wsl2 的我倒是最近刚研究出来,用 Windows 的 route add 方法可以转发到 wsl2 里面,Linux 下面应该也有类似的命令
    AoTmmy
        11
    AoTmmy  
       2020-11-25 01:29:12 +08:00 via Android
    macvlan 指定 ip
    比如本机是 192.168.0.2,可以把 docker 指定成 192.168.0.8 这种的
    yestodayHadRain
        12
    yestodayHadRain  
       2020-11-25 09:04:58 +08:00
    楼主解决了更新一下帖子
    OrangeLoveMilan
        13
    OrangeLoveMilan  
       2020-11-25 09:17:43 +08:00   ❤️ 1
    容器启动时默认使用 bridge 网络模式
    你需要在启动时加上参数 -n host 这样容器就和宿主机共用一个 network 的 namespace
    GTD
        14
    GTD  
    OP
       2020-11-25 09:55:54 +08:00
    @yestodayHadRain #12
    @FireFoxAhri #10

    解决了,看看这个博客,讲的很清楚: https://www.jianshu.com/p/270125484301
    julyclyde
        15
    julyclyde  
       2020-11-25 10:50:52 +08:00
    docker 成功的把初学者从“干点活”吸引到“修工具”去了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1191 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:31 · PVG 02:31 · LAX 10:31 · JFK 13:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.