docker - 如何使用域名连接到Docker容器

标签 docker docker-compose

所以我有一些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/

相关文章:

docker - 多个具有相同图像和内存使用情况的 docker 容器

docker - Windows中将docker的提取图像存储在哪里?

amazon-web-services - docker容器中的haproxy

docker - TPROXY 与 Docker 的兼容性

docker - 无法杀死的僵尸 docker 容器

docker - 我可以在 docker-compose.yml 文件中设置/获取变量吗?

django - docker-compose + django + redis - 错误 111 连接到 127.0.0.1 :6379. 连接被拒绝

docker - GitLab Ci 与 docker runner - 多阶段

docker - 我如何检查Docker镜像有多少版本?

python - Docker Compose Volumes 不推送最新代码