从docker镜像中点击在localhost上运行的服务

时间:2017-02-19 19:27:05

标签: docker

我在mac os上,我在localhost上的计算机上运行了一个服务:8000

现在我想启动一个泊坞窗图像并从此处点击此服务。

我做了一个码头桥,我从内部使用它,但它没有用。 以下是我的步骤:

我的主持人ip:

ifconfig

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 98:01:a7:b0:2b:41
    inet 192.168.0.70 netmask 0xffffff00 broadcast 192.168.0.255
    media: autoselect
    status: active

我从主持人那里获得了我的服务:

curl localhost:8000  #this is working!

我创建了一个桥,我使用它:

docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 dockernet
docker run --rm -it -v "$(pwd):/src" --network=dockernet  qatests /bin/bash

从码头工具内部,我做了一个卷曲,但它不起作用:

curl 192.168.0.1:8000 #it's not working :-(

任何想法?

2 个答案:

答案 0 :(得分:2)

您无需创建新网络。您可以使用默认的(桥接)。

只需使用docker0ip(在我的情况下为ifconfig)检查哪个IP与主机中的172.17.42.1界面相关联,并从内部使用该IP容器:

$ curl 172.17.42.1:8000

答案 1 :(得分:1)

最后,我发现如果我ping我的电脑ip,我甚至可以从码头图片中看到它。 为了方便起见,我做了一个lounch脚本,以获取我当前的IP并启动docker图像,使我的ip可以访问&#34; mymac&#34;地址 所以我所做的就是午餐

MY_IP=$(ifconfig en0 | grep inet | grep -v inet6 | awk '{print $2}')

docker run --rm -it -v "$(pwd):/src" --add-host=mymac:$MY_IP qatests 
/bin/bash

码头工人我现在可以吃午饭了:

curl mymac:8000 #it works! now mymac is my pc outside docker