天鹏变 發表於 2025-12-19 11:05:09

docker容器访问宿主机host设置的域名方式

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">为什么要访问host</a></li><li><a href="#_label1">需要知道docker的网络</a></li><ul class="second_class_ul"><li><a href="#_lab2_1_0">birdge 桥接</a></li><li><a href="#_lab2_1_1">host</a></li><li><a href="#_lab2_1_2">null</a></li></ul><li><a href="#_label2">如何访问宿主机的host</a></li><ul class="second_class_ul"></ul><li><a href="#_label3">总结</a></li><ul class="second_class_ul"></ul></ul></div><p class="maodian"><a name="_label0"></a></p><h2>为什么要访问host</h2>
<p>假设我的容器里的服务设置了请求redis的域名为 xxx.redis.com 此时的xxx.redis.com设置在宿主机的host可以对应任意的ip 但是docker的容器并不知道这个地址指向哪里。因为这是宿主机上的host 所以就需要对容器做调整</p>
<p class="maodian"><a name="_label1"></a></p><h2>需要知道docker的网络</h2>
<div class="jb51code"><pre class="brush:bash;">docker network ls</pre></div>
<p class="maodian"><a name="_lab2_1_0"></a></p><h3>birdge 桥接</h3>
<p>桥接的意思就是docker里的容器通过docker的网关访问宿主机的网络</p>
<p class="maodian"><a name="_lab2_1_1"></a></p><h3>host</h3>
<p>docker里的容器 不通过docker网关访问宿主机 而是直接使用宿主机的网络&nbsp; 如果采用了该网络 那么docker run -p 指定的端口会无效。因为端口和网络都采用了宿主机的端口和网络。</p>
<p class="maodian"><a name="_lab2_1_2"></a></p><h3>null</h3>
<p>这个可以忽略</p>
<p class="maodian"><a name="_label2"></a></p><h2>如何访问宿主机的host</h2>
<p>通过以上知道了网络后。就可以对docker的启动做设置了&nbsp; 直接设置为 网络 --network=host即可&nbsp; 如下代码</p>
<div class="jb51code"><pre class="brush:bash;">docker run -d --network=host --restart=always --name iot-cloud-mqtt-agent -e TZ=Asia/Shanghai -v /data/code/iot-cloud-mqtt-agent/logDir_IS_UNDEFINED:/app/logDir_IS_UNDEFINED iot-cloud-mqtt-agent
</pre></div>
<p>以上代码设置了 docker容器的网络为host模式&nbsp;</p>
<p class="maodian"><a name="_label3"></a></p><h2>总结</h2>
<p>这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持琼殿技术社区。</p>
頁: [1]
查看完整版本: docker容器访问宿主机host设置的域名方式