所以我有一些docker web应用程序,当它使用docker-compose
加载时,dhcp服务选择一些ip地址,比如192.168.96.3
,该Web应用程序位于6000
端口,因此我使用http://192.168.96.3:6000
连接到Webapp。有什么办法可以在docker-compose.yml
中分配域名foo.local
,以便在我连接到Web应用程序时输入foo.local:6000
?
我可以在docker-compose.yml
中添加一个主机可以映射到容器的动态IP的域名吗?
注意:
容器使用其自己的网络,因此将其连接到主机网络将与其目的冲突。
最佳答案
转发容器端口
对我来说,您可以通过暴露容器的端口轻松地从主机访问。因此,从该主机上,您应该可以通过公开端口作为localhost:6000进行访问。在网络中可以访问主机的其他计算机上,使用主机的IP或其名称/ DNS名称。
例如在docker-compose.yml中
services:
myservice:
image: myImage
ports:
- "published_port:container_port"
因此,如果您输入“6000:6000”,则意味着在主机端口6000上将转发到端口6000上的服务。DNS
因此,对于整体访问而言,请确保您的公司DNS将foo.local与您的Docker主机匹配,并将端口从Docker中的容器公开到Docker主机。
如果您只想从给定的计算机上执行此操作,那么您可以将条目添加到/ etc / hosts中(假设使用Linux)
127.0.0.1 localhost
127.0.0.1 foo.local
这里假设我们在同一台机器上,但是您可以使用正确的IP。如果您使用的是其他操作系统,请查看有关如何为操作系统执行此操作的文档。
关于docker - 如何使用域名连接到Docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63128587/