有两个related questions,但他们没有完全回答这个问题。但是如果mods认为这是复制品,请让我知道。
我有一个docker-compose.yml文件,用于部署phpmyadmin。主机上本地托管有一台mysql服务器(而不是作为容器)。
我有一个用于phpmyadmin连接到我的数据库的配置文件。我似乎找不到docker主机的域名,所以我一直在使用容器部署到的子网,并使用子网的.1。例如,最初容器部署到172.16.0.0/24,因此我在phpmyadmin的配置中声明连接到172.16.0.1
这个问题产生于这样一个事实:每次我重新部署,也就是发布docker-compose down && docker-compose up -d时,网络地址都会不断变化。我的变通方法是显式声明默认的ipam网络子网,这是一个很好的变通方法,而且实际上是首选的,因为这样我就可以将mysql用户登录绑定到ip地址范围。
但是由于docker知道要将容器服务"phpmyadmin“解析为容器的IP地址,所以我认为一定有针对主机的东西,这样我就不必每次都重新声明IP地址。
那么,有没有容器可以用来与主机通信的“主机名”,或者我是不是只能使用IP地址了?
编辑:我在Linux上使用docker,非常希望不要在主机模式下运行容器。
发布于 2019-12-13 10:06:24
最简单的解决方案是在合成文件中为容器设置network_mode: "host"。参见https://docs.docker.com/compose/compose-file/#network_mode。
或者,如果使用Docker for Windows或Docker for Mac,您也可以使用host.docker.internal作为容器中的url名称。
https://stackoverflow.com/questions/59315094
复制相似问题