有两个related questions,但他们并没有完全回答问题。但是如果mod认为这是重复的,请告诉我。
我有一个部署phpmyadmin的docker-compose.yml文件。在主机本身上本地托管了一个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,非常希望不要在主机模式下运行容器。
答案 0 :(得分:1)
最简单的解决方案是在容器的撰写文件中设置<script src="https://unpkg.com/compromise"></script>
<script src="https://unpkg.com/compromise-syllables"></script>
<textarea id="text" cols="50" rows="5">
As second argument, emojify takes an handler to parse unknown emojis
</textarea>
<div>
<button id="convert">Convert</button>
</div>
<p id="result"></p>
。参见https://docs.docker.com/compose/compose-file/#network_mode。
或者,如果使用Windows的Docker或Mac的Docker,则可以在容器内使用network_mode: "host"
作为URL名称。