4

参考: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 条目中可用?当我启动新容器以在生产环境中可用时,我是否必须传递一些标志/变量?

4

1 回答 1

4

我不想让 2 个或更多 skydock 实例监听同一个 docker.sock(在单个主机内)。我认为从概念上讲是不对的。Docker 容器对您的逻辑环境一无所知(生产、登台,...)

我有一个带有 skydns 和 skydock 的多主机设置。我在单独的主机上运行 skydns。其他两台服务器中的每台都运行 skydock 的单个实例,该实例将所有 docker 容器 ips 注册到集中式 SkyDNS 中,以便通过 dns 名称跨不同物理主机查看所有容器。

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

于 2014-11-24T23:12:18.603 回答