这篇文章是关于如何在Docker中访问这台机器的。桂哥网络觉得很实用,就分享给大家参考,跟着桂哥网络看了看。
Question
Docker需要访问本地数据库,如何访问。使用127.0.0.1肯定是不可能的,因为这是指Docker容器中的容器本身。所以需要通过其他渠道解决问题。
Solution
以下方法,根据操作系统的类型,选择一种。
文件:
RUN/sbin/iproute | awk '/default/{ print $ 3,' \ tdockerhost ' } '/etc/hostsRunTime:
(可能不使用)dockerrun-add-hostdockerhost : `/sbin/iproute | awk '/default/{ print $ 3 } ' `[my container]
(有用)dockerrun-add-host=dockerhost : ` dockernetworkkinspect-format=' { { range。IPAM.Config}}{{。gateway } } { { end } } ' bridge `[IMAGE]Docker for MAC(17.12):
docker.for.mac.host.internal
MONGO _ SERVER=docker . for . MAC . host . internal
#docker-compose.yml
版本:'3 '
服务:
api:
build:/api
volumes:
-./AP :/usr/src/app : ro
ports:
-'8000'
环境:
-MONGO_SERVER
command :/usr/local/bin/guni corn-c/usr/src/app/guni corn _ config . py-w1-b 33608000 wsgilinux
#解决方案1
/sbin/iproute | awk '/default/{ print $ 3 } '
dockerrun-add-hostdockerhost : `/sbin/iprout | awk '/default/{ print $ 3 } ' `[my container]
#解决方案2
-e ' DOCKER _ HOST=$(IP-4 addrshow DOCKER 0 | grep-Po ' inet \ K[\ d]. ')'Principle
要知道原理,需要知道计算机网络的模型和docker实现的模型。事实上,虚拟桥docker0是在docker中实现的。需要在网桥中找到外部主机的虚拟地址,即docker.for.mac.host.internal,才能访问容器中的外部主机。有兴趣的话可以了解一下docker的网络原理,计算机网络原理,Docker作曲。
Reference
[1].(stack overflow)insert-docker-parent-host-IP-into-containers-hosts-file
[2].如何从集装箱内部获取码头工人主机的ip地址
感谢阅读!这篇关于“如何在Docker中访问这台机器”的文章已经在这里分享了。希望以上内容能帮助大家学到更多的知识。如果你觉得文章好,可以分享给更多人看!
TikTok千粉号购买平台:https://tiktokusername.com/
TOP