docker - 如何同时运行 SkyDns/Skydock 的 2 个环境?

标签 docker skydns

引用: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/

相关文章:

docker - Docker容器中卷的符号链接(symbolic link)

docker - tar ( child ):prometheus-2.8.1.linux-amd64.tar.gz:无法打开:没有这样的文件或目录

java - 使用ec2上的java SDK在aws中承担不同的角色,它使用分配的IAM进行访问

node.js - 使用 Fleet 启动时 Docker 容器退出

dns - pods 中的SkyDNS MissingClusterDNS

docker - 如何通过另一个容器的172.17.42.1:53:53/udp(docker0)通过暴露的端口访问容器(SkyDns)? Docker 1.7.1,Centos 7