Docker определяет собственную настройку сети. Вы можете увидеть некоторые подробности этого на Linux при запуске ifconfig
и просмотре вывода iptables
. Если вы вручную сконфигурируете сеть Docker так, чтобы она имела такой же блок CIDR, что и ваша внешняя сеть, вы можете закончить в последовательности, где:
- Я хочу позвонить по 8.8.8.8.
- Его нет ни в одной из моих локальных сетей, поэтому я перенаправлю на шлюз по умолчанию 192.168.178.1.
- Этот адрес находится в
docker1
сети 192.168.178.0/24.
... и исходящие пакеты никогда не покидают ваш хост.
Вам почти никогда не потребуется вручную настраивать IP-адреса или сети в Docker. Он имеет собственную внутреннюю сетевую настройку и делает это за вас. В контексте Compose Compose также выполнит некоторые дополнительные настройки, которые вам обычно необходимы, например, создание сети default
; Сеть в Compose содержит более подробную информацию.
Чтобы получить доступ к контейнеру извне Docker пространства, вам нужно опубликовать sh ports:
из этого контейнера, а затем он будет доступен с IP-адреса вашего хоста на опубликованном порту.
services:
mongo:
ports: ['27017:27017']
# no networks: or manual IP configuration; just use the `default` network