在Docker的默认网络配置下,有两种方式可以实现:
使用自定义桥接网络
。同一个桥接网络种的容器之间可以通过域名(默认为容器名称)来访问。比如我有两个容器,那么在启动的时候就要设置net参数和name参数(可以使用默认name,不过不推荐)在a容器种访问b容器
同样b也可以访问a,相当于a和b共同组建了一个子网。主机访问b容器可以通过3333端口。
使用主机网络
。启动时设置 --net host,占用主机网络和主机共用端口,这种情况下端口不需要再挂载,你可以把容器直接理解为机器上的一个进程。可以通过localhost和其对应的容器端口访问其它容器。比如在c容器中可以访问主机上的所有进程端口,例如a容器的1111端口。
这种网络模式会丧失隔离性,与主机完全共享IP和端口(windows下好像不能共享IP)。一般用于全局性代理。比如你有很多的web应用,想都通过nginx转发,那么这个时候就可以把nginx容器设置为host网络,而其它web应用设置为桥接网络。
觉得有帮助记得点赞哦~