Docker Network: различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 85: | Строка 85: | ||
Щоб видалити мережу у контейнера | Щоб видалити мережу у контейнера | ||
− | docker network disconnect <ID> <container> | + | docker network disconnect <ID або назва якщо є> <container> |
де, ID це NetworkID з "docker inspect ContainerName" | де, ID це NetworkID з "docker inspect ContainerName" | ||
container - це назва контейнеру | container - це назва контейнеру |
Версия 16:47, 23 января 2024
Содержание
Docker Bridge
За замовчуванням створюється мережа цього типу. Треба пробросувати порти в цьому типу мережі якщо треба доступ зовні (параметр -p 80:80). Також можна під'єднатися локально.
docker0: 172.17.0.0/16
docker run nginx -p 80:80
В даному типі контейнери можуть мати зв'язок тільки через IP адреси, яки видаються через dhcp докером.
Можливо створити мережу. Це робиться так:
docker network create --drive bridge NETNAME, де: --drive - це тип мережі, в даному випадку це тип BRIDGE NAME - це назва мережі.
Вже є мережа з назвою "default" вона створюється автоматично, та контейнер буде в неї, якщо не вказати при запуску контейнера, ось так: docker run --net NAME nginx Якщо створювати контейнери не в default мережі, то контейнери можуть звертатися один до одного по імені (параметр --name при створювані). Однак між собою різні мережі не можуть мати зв'язок. Звісно якщо не робити його якимось сторонніми методами.
Docker Host
В цьому типу, контейнер отримує IP адресу хоста на якому він запускається. Треба указати тип мережі --network=host
Для цього типу треба указати параметр --network=host
docker run nginx --network=host
Створити мережу цього типу можливо так: docker network create --drive host NETNAME.
В цьому типі контейнери та хост можуть мати з'єднання між собою, вони використовують для цього IP адресу хоста.
В цьому типу може бути тільки одна мережа.
none
В цьому випадку не буде у контейнера мережевого інтерфейсу. Під'єднатися можливо тільки локально (параметр --it). docker run nginx --network=host
macvlan
В цьому типу у кожного контейнера свої мак адреси. IP адреси в цих контейнерах будуть унікальні для кожного контейнера.
ipvlan
В цьому типу у кожного контейнера буде один і той же MAC адрес, а IP адреси контейнерів будуть - різні.
overlay
Тут щось має бути
Команди роби з мережами
Подивитись які є мережі в Docker
docker network ls
Подивитись що за мережа
docker inspect <name of net або її ID (з docker network ls)>
Створити сої IP адреси можна так:
docker network create -d bridge --subnet 192.168.1.0/24 --gateway 192.168.1.1 myNet
де, параметр -d це скорочено від --drive --subnet це яка саме буде мережа --gateway це шлюз для цієї мережі myNet це назва мережі
Видалити мережі можна командою
docker network rm <назва або ID (з docker network ls)> можна вказати де кілька через пробіл.
Якщо треба додати мережу у контейнера, це можна зробити командою
docker network connect myNet container де, myNet це назва мережі до якої треба під'єднатися. container1 - це назва контейнеру.
Щоб видалити мережу у контейнера
docker network disconnect <ID або назва якщо є> <container> де, ID це NetworkID з "docker inspect ContainerName" container - це назва контейнеру