ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΡΠ΅ΠΌΡ-ΡΠΎ Π΅ΡΠ΅, Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΌΡ Π² Docker.
ΠΡ ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π»ΠΈ ΠΎΠ± ΡΡΠΎΠΌ, Π½ΠΎ Ρ ΡΠ΅Ρ ΠΏΠΎΡ ΠΊΠΎΠ΅-ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Docker.
ΠΠΎΡ 2 ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ:
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Docker ΠΈ Π΅ΡΠ΅ Π½Π΅ Π³ΠΎΡΠΎΠ²Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² Docker, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ PostgreSQL, MySQL ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π‘Π£ΠΠ, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ Π²Π°Ρ Π΅ΡΡΡ.
ΠΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π² Docker.
ΠΠ²Π° ΠΈΠ· Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² Docker, Π½ΠΎ ΡΡΠ΅ΡΠΈΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π΅ΡΠ΅ Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½ Π² Docker, Π½ΠΎ Π΄Π²ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΡΠ΅ΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ.
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Docker
ΠΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΡΡΠΎΠ²ΡΡ ΡΠ΅ΡΡ Docker, Π½Π΅ ΠΏΡΠΈΠ±Π΅Π³Π°Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° –net=host.
ΠΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ host.docker.internal, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ DNS-ΠΈΠΌΡ, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ΅ Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠ΅Π΅ΡΡ Π² IP-Π°Π΄ΡΠ΅Ρ ΡΠ»ΡΠ·Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠΎΡΡΠΎΠ²ΠΎΠΉ ΡΠ΅ΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ Ρ ΠΎΡΡΠ° Docker.
ΠΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΠ± ΡΡΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΡΠΎ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Postgres, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌΡ Π½Π° ΠΏΠΎΡΡΡ 5432, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Docker Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ»ΡΠΆΠ±Π΅ Postgres ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ host.docker.internal:5432.
Docker Desktop
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Docker Desktop, ΡΡΠΎ ΠΈΠΌΡ Ρ ΠΎΡΡΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ.
ΠΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π½ΠΎΠ²Π°.
ΠΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ Π΄Π°Π½Π½ΡΠΌ, ΠΎΠ½Π° Π΄ΠΎΡΡΡΠΏΠ½Π° Ρ Π²Π΅ΡΡΠΈΠΈ Docker Engine 18.03, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° Π² ΠΌΠ°ΡΡΠ΅ 2018 Π³ΠΎΠ΄Π°.
Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΠ½Π° Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ!
Π ΠΎΠ΄Π½ΠΎΠΉ Linux Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Docker Desktop, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ Linux Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅, Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° Π² Docker Engine 20.10+ (Π²ΡΡΠ΅Π»Β Π² Π΄Π΅ΠΊΠ°Π±ΡΠ΅ 2020 Π³ΠΎΠ΄Π°).
ΠΠ½Π° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ host-gateway – ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ –add-host Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ IP-Π°Π΄ΡΠ΅ΡΠ° ΡΠ»ΡΠ·Π° Π²Π°ΡΠ΅ΠΉ ΡΠ΅ΡΠΈ Docker bridge.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ Ρ ΠΎΡΡΠ° host.docker.internal, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Docker Desktop.
ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Docker Compose?
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ docker CLI, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎΡ ΡΠ»Π°Π³ –add-host=”host.docker.internal:host-gateway” Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Docker Compose?
Π ΡΠ΅ΡΠ²ΠΈΡΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ extra_hosts: [“host.docker.internal:host-gateway”], ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ Π²ΡΡΠ΅.
ΠΡΠΎΠ±ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ping
ΠΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½Ρ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ², ΠΊΠ°ΠΊ bridge ΡΠ΅ΡΠΈ ΠΈ IP-Π°Π΄ΡΠ΅ΡΠ° ΡΠ»ΡΠ·ΠΎΠ².
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ:
docker container run --rm \
--add-host="host.docker.internal:host-gateway" \
debian:stable-slim \
bash -c "apt-get update && apt-get install -y iputils-ping && ping -c 3 host.docker.internal"
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ Docker (Docker Desktop ΠΈΠ»ΠΈ ΡΠΎΠ΄Π½ΠΎΠΉ), Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ:
PING host.docker.internal (172.17.0.1) 56(84) bytes of data.
64 bytes from host.docker.internal (172.17.0.1): icmp_seq=1 ttl=64 time=0.039 ms
64 bytes from host.docker.internal (172.17.0.1): icmp_seq=2 ttl=64 time=0.054 ms
64 bytes from host.docker.internal (172.17.0.1): icmp_seq=3 ttl=64 time=0.038 ms
--- host.docker.internal ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2105ms
rtt min/avg/max/mdev = 0.038/0.043/0.054/0.007 ms
ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Docker Desktop ΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π±Π΅Π· ΡΠ»Π°Π³Π° –add-host, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ ping:ping: host.docker.internal: Name or service not known.
ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ –add-host Π΄ΠΎΠ±Π°Π²ΠΈΡ ΡΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°ΠΉΠ» /etc/hosts Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 172.17.0.1 host.docker.internal.
ΠΠ΅Π· ΡΡΠΎΠ³ΠΎ ΡΠ»Π°Π³Π° host.docker.internal Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½, ΠΈ ΠΎΠ½ ΡΠ΅ΡΠΏΠΈΡ Π½Π΅ΡΠ΄Π°ΡΡ.
ΠΡΡΠ°ΡΠΈ, IP-Π°Π΄ΡΠ΅Ρ 172.17.0.1 ΡΠ²ΡΠ·Π°Π½ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ip a ΠΈΠ»ΠΈ ifconfig Π΄Π»Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° docker0, Π²Π°Ρ IP-Π°Π΄ΡΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ.
ΠΡΠΎ IP-Π°Π΄ΡΠ΅Ρ ΡΠ»ΡΠ·Π° ΡΠ΅ΡΠΈ ΠΌΠΎΡΡΠ°, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ Π½Π΅ΠΌΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ host.docker.internal.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΠΈΠ½Π³ΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΠΎΠΌΡ IP-Π°Π΄ΡΠ΅ΡΡ, Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ –add-host, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ DNS ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΡΡΠΎΡ IP-Π°Π΄ΡΠ΅Ρ, Π° Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ Π½Π΅ ΡΠ°ΠΊΠΈΠΌ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠ΅Π½Π° Π²Π°ΡΠ° ΡΠ΅ΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΡΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΡΠΎΠ²Π΅Π½Ρ Π³Π»ΡΠ±ΠΆΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ docker network inspect bridge, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° ΡΡΠ΅ΡΠΈ ΠΏΡΡΠΈ Π²Π½ΠΈΠ· Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ “Gateway”: “172.17.0.1”.
Π‘ΠΊΠ°Π·Π°Π² ΡΡΠΎ, ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΡΠ°Π½ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Ρ ΠΎΡΡΡ Docker Π΄ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Docker.
ΠΡΠ΅Π²Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Docker
ΠΡΠ»ΠΈ Π²Ρ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Ρ Π½Π° ΠΎΡΠ΅Π½Ρ ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Docker, Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ².
ΠΡΠ»ΠΈ Π²Ρ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Ρ Π½Π° ΠΎΡΠ΅Π½Ρ ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Docker, Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ².
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ docker network inspect bridge -f “{{range .IPAM.Config}}{{.Gateway}}{{end}}”, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ IP-Π°Π΄ΡΠ΅Ρ ΡΠ»ΡΠ·Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Go Π΄Π»Ρ ΡΠ°Π·Π±ΠΎΡΠ° IP-Π°Π΄ΡΠ΅ΡΠ°.
ΠΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ host.docker.internal Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΎΠΌΡ IP Π½Π°ΠΏΡΡΠΌΡΡ.
ΠΠ° ΠΌΠΎΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 172.17.0.1, Π½ΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΎ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ Π½Π° Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠ΅Π½Π° Π²Π°ΡΠ° ΡΠ΅ΡΡ.
Π― Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π²ΡΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π½Π΅ΡΠ½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ° Π²ΡΠ²ΠΎΠ΄Π° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ IP-Π°Π΄ΡΠ΅ΡΠ°, Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ip a ΠΈΠ»ΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Π°ΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (ifconfig ΠΈ Ρ. Π΄.), ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ docker0.
ΠΠ° ΠΌΠΎΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ip a Π²ΡΠ΄Π°Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:f0:24:c9:09 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:f0ff:fe24:c909/64 scope link
valid_lft forever preferred_lft forever
Π ΡΡΡΠΎΠΊΠ΅ 3 Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ IP-Π°Π΄ΡΠ΅Ρ 172.17.0.1.
ΡΠΌ. ΡΠ°ΠΊΠΆΠ΅:
- π³Β ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΎΠ±ΡΠ°Π·Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Docker
- π³Β ΠΠ°ΠΊ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Docker
- π³Β ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΡΠ΅ΡΠ΅ΠΉ Π² Docker
- π³Β Docker ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ 101
- ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ Docker Π² Linux
- ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ Docker
![]()
