如何同时运行SkyDns/Skydock的两个环境



参考:https://github.com/crosbymichael/skydockhttps://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主机中运行吗?如果我在同一个docker主机中启动,新容器将在哪个DNS url条目中可用?当我启动新容器以在生产环境中可用时,我是否必须传递一些标志/变量?

我不知道如何让2个或多个skydock实例侦听同一个docker.sock(在单个主机内)。我认为这在概念上是不对的。Docker容器对您的逻辑环境(生产、暂存…)一无所知

我用skydns和skydock设置了一个多主机。我在一个单独的主机上运行skydns。另外两个服务器中的每一个都运行skydock的单个实例,该实例在集中式SkyDNS中注册所有docker容器ip,这样所有容器都可以通过dns名称在不同的物理主机上可见。

所有这些都在Flannel网络覆盖之上工作https://github.com/coreos/flannel(需要etcd)

最新更新