Итак, network_mode
- это проблема.
Я удаляю network_mode
и у меня есть тест на следующее:
version: '3'
services:
apache:
image: ubuntu
container_name: Container1
#network_mode: "bridge"
tty: true
web:
image: ubuntu
container_name: Container2
#network_mode: "bridge"
tty: true
После docker-compose up -d
я вхожу в Container1
и установить ping
, я могу пропинговать Container2
.
root@fe69bd6d62af:/# ping Container2
PING Container2 (172.26.0.3) 56(84) bytes of data.
64 bytes from Container2.bb_default (172.26.0.3): icmp_seq=1 ttl=64 time=0.166 ms
64 bytes from Container2.bb_default (172.26.0.3): icmp_seq=2 ttl=64 time=0.064 ms
Вы также можете обратиться к official doc , чтобы узнать, какие пользовательские мосты приносят нам, сравнить с мостом по умолчанию,основное отличие заключается в следующем:
Пользовательские мосты обеспечивают автоматическое разрешение DNS между контейнерами.
Если вы не укажете network_mode
, compose автоматически настроит пользователя-определенные мосты для вас, так что вы можете использовать эту магию.В моем примере bb_default
- это настройка моста для нас, вы можете использовать docker network ls
, чтобы подтвердить это.Кроме того, можно использовать docker network inspect bb_default
, чтобы увидеть детали этого нового моста.