请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

MacOS 端口问题

老师,我有个问题:
Docker Desktop for MacOs 不支持 docker0 端口。
所以我在mac上启动的所有容器,都无法通过Mac环境访问。
有没有什么方法,能让我在Mac上建立docker0,使得docker 服务器上的bridge网络,直接链接到我的mac。而不通过虚拟机,间接中转。

正在回答

3回答

比如这就是我在Mac上直接访问nginx的container


$ docker network create my-bridge
14bf23e2f5c48a0249264825f72842b28c36b4be9ee8d1d485ef3465676f685d
$ docker run -d --network=my-bridge -p 8080:80 nginx
bbb77e5e8451614a32c39181a054550bdb01f134712735e68ce25ede743c8a78
$
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
bbb77e5e8451        nginx               "nginx -g 'daemon of…"   3 seconds ago       Up 3 seconds        0.0.0.0:8080->80/tcp   recursing_khayyam
$ curl 127.0.0.1:8080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
$


1 回复 有任何疑惑可以回复我~
  • 提问者 swordkeeper #1
    非常感谢!老师
    回复 有任何疑惑可以回复我~ 2020-04-17 15:02:31
  • 提问者 swordkeeper #2
    我犯了个低级错误。我去访问他内网IP,就是bridge默认使用的网段 172.10.xxx.xxx。现在好了非常感谢老师
    回复 有任何疑惑可以回复我~ 2020-04-17 15:04:02
麦兜搞IT 2020-04-17 14:51:25

浏览器也可以了

https://img1.sycdn.imooc.com//szimg/5e9951e70981612026561736.jpg

0 回复 有任何疑惑可以回复我~
麦兜搞IT 2020-04-17 03:03:10

您如果直接用mac的docker,那就不要用docker0这个bridge,可以使用docker network去创建一个新的bridge网络,然后映射到这个网络上就可以了

0 回复 有任何疑惑可以回复我~
  • 提问者 swordkeeper #1
    老师,还是不行。好像无论,怎么建立都不会影响mac上的网络配置。在mac网络配置上就是不显示有这个端口。
    
    不过确实有个bridge0。我在mac 的terminal中还是ping不通 docker中的网段
    
    这下面是我mac上唯一一个与docker应用有关的接口
    bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
            options=63<RXCSUM,TXCSUM,TSO4,TSO6>
            ether 02:00:0c:28:4d:01 
            Configuration:
                    id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
                    maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
                    root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
                    ipfilter disabled flags 0x2
            member: en1 flags=3<LEARNING,DISCOVER>
                    ifmaxaddr 0 port 9 priority 0 path cost 0
            member: en2 flags=3<LEARNING,DISCOVER>
                    ifmaxaddr 0 port 10 priority 0 path cost 0
            nd6 options=201<PERFORMNUD,DAD>
            media: <unknown type>
            status: inactive
    回复 有任何疑惑可以回复我~ 2020-04-17 10:09:42
  • 提问者 swordkeeper #2
    就是在mac 下 输入命令
    docker network create -d bridge my_bridge 后
    docker下创建 网络成功。
    但是在terminal 中输入ifconfig,还是看不到有新网络接口添加。
    
    我实在想,是不是mac 有防火墙之类的。阻止了? 
    求助!?老师
    回复 有任何疑惑可以回复我~ 2020-04-17 10:39:33
  • 麦兜搞IT 回复 提问者 swordkeeper #3
    我的意思是说您创建一个新的bridge,然后再创建container的时候,就通过--network指定使用这个network,这样你的--port就可以映射访问了
    回复 有任何疑惑可以回复我~ 2020-04-17 14:44:31
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号