一.

创建自定义网络

docker network create <network name>

也可以自己指定网段,如

docker network create --subnet=172.172.0.0/24 myapp

二.

在docker-compose 文件中增加网络设置,使不同compose文件的容器位于同一局域网

例如:上面我们创建了名为myapp的网络,这一步在docker-compose 文件中通过external选项指定使用这个网络

networks:
  default:
    external:
      name: myapp

这样,启动起来的docker容器就会在同一局域网里,可以通过指定ip进行相互通信

三.

注意:如果同一局域网中进行socket通信,容器A访问容器B没有指定容器B的局域网ip而是指定了宿主机的ip,那么容器B识别到的对端ip是该局域网的网关ip而不是容器A的局域网ip