Docker по умолчанию поддерживает 3 сети:
1) None:
Этот режим не будет настроить любой IP для контейнера и не имеет доступа к внешней сети, а также для других контейнеров. Он имеет адрес loopback и может использоваться для запуска пакетных заданий.
# docker run -it --network=none ubuntu:14.04 /bin/bash
[email protected]:/# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
#
# docker inspect 66308c6686be | grep -i ipaddr
"SecondaryIPAddresses": null,
"IPAddress": "",
"IPAddress": "",
2) Хост
В этом режиме контейнер разделит сетевой стек хоста и все интерфейсы от хоста будут доступны для контейнера. имя хоста контейнера будет совпадать с именем хоста на хост-системе
# docker run -it --net=host ubuntu:14.04 /bin/bash
[email protected]:/# hostname
labadmin-VirtualBox
Даже конфигурация IP такой же, как IP конфигурации хост-системы
[email protected]:/# ip addr | grep -A 2 eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:b5:82:2f brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
valid_lft forever preferred_lft forever
3: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
[email protected]:/# exit
exit
HOST SYSTEM IP CONFIGURATION
# ip addr | grep -A 2 eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:b5:82:2f brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
valid_lft forever preferred_lft forever
3: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
В хостом и ни один режиме, не сконфигурированы напрямую, но сеть моста по умолчанию может быть сконфигурирована так же, как и создавать собственные пользовательские сети мостов.
3) Режим моста
Это Docker сети по умолчанию режим, который позволит подключение к другим интерфейсам хост-машины, а также среди контейнеров.
# docker run -it --network=bridge ubuntu:14.04 /bin/bash
[email protected]:/# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:0c
inet addr:172.17.0.12 Bcast:0.0.0.0 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2668 (2.6 KB) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Доступность других контейнеров можно в режиме моста.
[email protected]:/# ping 172.17.0.11
PING 172.17.0.11 (172.17.0.11) 56(84) bytes of data.
64 bytes from 172.17.0.11: icmp_seq=1 ttl=64 time=0.143 ms
64 bytes from 172.17.0.11: icmp_seq=2 ttl=64 time=0.050 ms
подключения к внешней сети.
[email protected]:/# ping google.com
PING google.com (216.58.197.46) 56(84) bytes of data.
64 bytes from maa03s20-in-f46.1e100.net (216.58.197.46): icmp_seq=1 ttl=51 time=16.9 ms
Подключение к хост-машине
[email protected]:~# ip a | grep eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
[email protected]:/# ping 10.0.2.15
PING 10.0.2.15 (10.0.2.15) 56(84) bytes of data.
64 bytes from 10.0.2.15: icmp_seq=1 ttl=64 time=0.113 ms
Наряду с этим Докер обеспечивает MACVLAN сеть, которая позволяет конфигурировать многослойный 2 (MAC) адреса на одном физическом интерфейсе.
читать [это] (https://docs.docker.com/engine/userguide/networking/) –
я тоже называют по той же ссылке, но я ищу некоторые примеры, чтобы лучше понять. –