我有一个在默认Docker桥接网络中的linux主机中运行的docker容器。容器可以到达互联网。(wget -qO- google.com
作品)ifconfig
显示ip 172.17.0.2。我的笔记本电脑与服务器连接到相同的网络。它可以ping我的服务器,我的服务器可以ping我的笔记本电脑,而docker容器可以ping我的笔记本电脑,但是我的笔记本电脑无法ping我的docker容器。(我的服务器也可以对我的容器执行ping操作。)通过使用wirehark,我发现docker容器ping来自我服务器的ip。
我读到docker容器通过网桥适配器连接时会使用假面舞会连接到互联网。(我不知道在哪里)我读到了关于化妆舞会的信息:
“有一个小的警告,那就是伪装功能几乎总是只在一个方向上起作用,即被伪装的主机可以发出呼叫,但是它们不能接受或接收来自远程主机的网络连接。”
我不确定这是否适用于docker。
我可以通过我的笔记本电脑以某种方式发起到我的Docker容器的连接吗?为什么或者为什么不?
这样做需要什么?(我知道-publish)
一种方法是设置一个macvlan接口。macvlan接口可模拟主机的LAN,并为容器提供自己的IP。您可以在此处阅读有关内容:https : //docs.docker.com/network/network-tutorial-macvlan/
另一种方法是使用您知道的发布选项在主机上公开端口。例如,如果容器运行的是Web服务器,则可以公开端口80。在此处了解有关信息:https : //docs.docker.com/config/containers/container-networking/然后,您将可以通过以下方式访问docker转到主机IP和您选择的端口。
总的来说,macvlan方法比较难,但是如果您运行多个容器,则它们的混乱程度将大大降低,因为它们每个都有自己的IP。但是,第二种方法要容易得多,可以在几秒钟内完成设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句