Dns 如何通过名称而不是IP地址访问docker容器?
是否有一种方法可以使用名称而不是ip地址访问docker容器 我听说过pipework,也见过docker的一些dns和主机名类型选项,但我仍然无法将所有内容组合在一起 谢谢你抽出时间 我不确定这是否有帮助,但这是我迄今为止所做的:Dns 如何通过名称而不是IP地址访问docker容器?,dns,docker,hostname,docker-compose,docker-machine,Dns,Docker,Hostname,Docker Compose,Docker Machine,是否有一种方法可以使用名称而不是ip地址访问docker容器 我听说过pipework,也见过docker的一些dns和主机名类型选项,但我仍然无法将所有内容组合在一起 谢谢你抽出时间 我不确定这是否有帮助,但这是我迄今为止所做的: 使用docker机器和vmwarevsphere驱动程序安装docker容器主机 使用docker compose启动所有服务 我可以使用IP和端口从网络上的任何其他机器访问所有服务 我已经向我的专用网络DNS服务器添加了一个DNS别名条目,它与docker机器
- 使用docker机器和vmwarevsphere驱动程序安装docker容器主机
- 使用docker compose启动所有服务
- 我可以使用IP和端口从网络上的任何其他机器访问所有服务
- 网络DNS服务器
- docker计算机主机名
- docker容器主机名
- 可能是它们的某种组合
任何大方向都会很棒…再次感谢 如果您想要开箱即用的解决方案,您可能需要检查例如。它与来自的网络覆盖技术一起提供,该技术用于在服务之间创建虚拟专用LAN网络。由于每个服务/容器都可以通过
service\u name.kontena.local
编辑2018-02-17:Docker最终可能会从Docker compose中删除链接
键,因此他们建议按此处所述使用=>
假设您希望从
docker compose.yml
文件的web
容器访问mysql
容器,例如:
web:
build: .
links:
- mysql
mysqlservice:
image: mysql
您会很高兴知道Docker Compose已经添加了一个mysqlservice
域名(在web
container/etc/hosts
)指向mysql
容器
您可以只使用mysqlservice
域名,而不是查找mysql
容器IP地址
如果要添加自定义域名,也可以使用参数。您可能需要尝试使用dnsdock。向前看,易于(!)设置。请看一看。Docker
1.10
具有内置DNS。如果您的容器连接到同一个用户定义的网络(创建网络docker network create my network
并使用--net my network
运行您的容器),它们可以使用容器名称相互引用。()
酷
如果使用Docker compose,需要注意的一点是,它会在容器名称中添加前缀,即
\uu-#
。这使得您的容器名称更难控制,但对于您的用例来说可能还可以。你可以 创建一个除docker0之外的新网桥网络,在其中运行容器,您可以通过名称引用该网络中的容器
Docker守护进程运行嵌入式DNS服务器以提供自动服务
发现连接到用户定义网络的容器。名称
来自容器的解析请求首先由
嵌入式DNS服务器
试试这个:
docker network create <network name>
docker run --net <network name> --name test busybox nc -l 0.0.0.0:7000
docker run --net <network name> busybox ping test
docker网络创建
docker run--net--name test busybox nc-l 0.0.0.0:7000
docker运行--net busybox ping测试
首先,我们创建一个新的网络。然后,我们在端口7000上运行一个名为test的busybox容器(只是为了让它保持运行)。最后,我们根据测试容器的名称ping它,它应该可以工作 我用--network
参数更改了--net
参数,它按预期运行:
docker network create <network name>
docker run --network <network name> --name <container name> <other container options>
docker run --network <network name> --name <container name> <other container options>
docker网络创建
docker run--网络--名称
docker run--网络--名称
这是否允许您使用service\u name.kontena.local
从主机连接到容器公开的端口?链接是否将被删除?:-O(更正)刚刚看到了你写的关于缩放的最后一部分,现在我知道你来自哪里了!(原创)您应该能够在服务中使用docker compose.yml
并设置container\u name:anything
,并且它不应该预先添加任何内容,但如果我错了,请纠正我。我经常在自定义网络上这样做。看看,您可以使用DPS来实现这一点,同时,您可以利用其他一些功能