引用: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 条目中可用?
当我启动新容器以在生产环境中可用时,是否必须传递一些标志/变量?
最佳答案
我不知道如何让 2 个或更多 Skydock 实例监听同一个 docker.sock(在单个主机中)。我认为从概念上来说这是不对的。 Docker 容器对您的逻辑环境一无所知(生产、暂存等)
我有一个带有skydns和skydock的多主机设置。我在单独的主机上运行 skydns。其他两个服务器中的每一个都运行一个 skydock 实例,它在集中式 SkyDNS 中注册所有 docker 容器 ip,以便所有容器都可以通过 dns 名称在不同的物理主机上可见。
所有这些都在 Flannel 网络覆盖之上运行 https://github.com/coreos/flannel (这需要 etcd)
关于docker - 如何同时运行 SkyDns/Skydock 的 2 个环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26374846/