参考:https://github.com/crosbymichael/skydock https://github.com/crosbymichael/skydns
首先,我解雇了这两个实例。
docker run -d -p 8080:8080 -p 172.17.42.1:53:53/udp --name skydns crosbymichael/skydns -nameserver 8.8.8.8:53 -domain docker
docker run -d -v /var/run/docker.sock:/docker.sock --name skydock crosbymichael/skydock -ttl 30 -environment dev -s /docker.sock -domain docker -name skydns
此设置按预期工作。
现在我想生成另一个生产环境。这次我只用env制作了另一个skydock容器,如下所示。
docker run -d -v /var/run/docker.sock:/docker.sock --name skydock-prod crosbymichael/skydock -ttl 30 -environment prod -s /docker.sock -domain docker -name skydns
查询api不会显示生产skydoc。
curl $(docker-ip):8080/skydns/services/
现在我想知道如何设置skydock的生产版本。
我必须在单独的docker-host中运行吗? 如果我在同一个docker主机中启动,那么新的容器可以使用DNS url条目? 当我在生产环境中触发新容器时,是否必须传递一些标志/变量?
答案 0 :(得分:4)
我不知道如何让两个或更多的skydock实例听同一个docker.sock(在单个主机内)。我认为从概念上讲它是不对的。 Docker容器对您的逻辑环境(生产,升级,......)一无所知
我使用skydns和skydock进行了多主机设置。我在一个单独的主机上运行skydns。其他两个服务器中的每一个都运行skydock的单个实例,它将所有docker容器ips注册到集中式SkyDNS中,以便所有容器在不同的物理主机上通过dns名称可见。
所有这一切都在Flannel网络覆盖https://github.com/coreos/flannel之上(需要etd)