Рубрики
Uncategorized

Пользовательская подсеть IP для интерфейса Docker0

Вот проблема, я хочу развернуть API на моем сервере, но сервер работает другие сервисы, которые Con … Помечено с Docker, DevOps, Linux.

Вот проблема, я хочу развернуть API на моем сервере, но сервер работает другие сервисы, которые конфликтуют с IP по умолчанию, который был предоставлен по умолчанию для Docker0 интерфейс. Поэтому мне нужно настроить пользовательскую подсеть IP-адрес для этого интерфейса и поместив несколько контейнеров докеров, не создавая новые интерфейсы с той же подсетью, которая противоречит вышеупомянутым услугам.

Конфигурация сервиса Docker

Во-первых, нам нужно установить пользовательскую подсеть для Docker0 Интерфейс по умолчанию. Для этого нам нужно редактировать или создавать, если он не существует файл конфигурации для службы Docker. # vim/etc/docker/daemon.json И положить это как контент:

{
    "bip": "10.10.0.1/24"
}

После этого нам нужно перезапустить службу докера: # Service Docker Restart После перезагрузки Docker Service мы можем запустить ifconfig. Чтобы увидеть, были ли изменения применены: Как мы можем видеть на изображении, Docker0 Интерфейс установлен с подсети, которую мы вставили в daemon.json файл.

Docker Compose

Теперь мы должны установить в нашем Docker-Compose.yml Файл, что мы хотим использовать Docker0 Интерфейс и не создавать какую-то случайную новую. Для этого вам нужно только добавить news_mode: мост Вариант для всех ваших услуг внутри Docker-Compose.yml Файл, как:

version: '3.3'

services:
    db:
        image: mysql:5.7
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: 'Lorem-Diem'
            MYSQL_USER: 'lorem'
            MYSQL_PASSWORD: 'Lorem-Ipsum'
        network_mode: bridge
        ports:
            - '3306:3306'
        volumes:
            - ./mysql_data:/var/lib/mysql

И после этого вы можете просто построить и поставить свои контейнеры:

$ docker-compose up -d —build

Теперь, если вы запустите ifconfig. Опять же, вы увидите, что не были созданы новые интерфейсы.

Если вы хотите увидеть свой контейнер IP, получите идентификатор контейнера, используя $ Docker PS и бежать $ Docker осматривает <ваш контейнер ID> | Greep -i IP Отказ

Одиночный докер

Если вы хотите начать один документ, используя Docker0 Интерфейс, вы можете добавить - Бридж - с мостом к вашему Docker Run Команда, как:

$ Docker Run -it -d —net Bridge Ubuntu: 18.04/bin/bash

Вышеуказанная команда приносит отдельную контейнер, запущенный Ubuntu версии 18.04 и вызывает /bin/bash так что вы можете запустить ifconfig. Опять же, на вашем хост-машине, чтобы увидеть, что контейнер действительно использует по умолчанию Docker0 интерфейс.

Все контейнеры, упомянутые в этом посте, получит IP-адрес, который соответствует Docker0 подсеть.

Оригинал: «https://dev.to/macielti/custom-subnet-ip-for-docker0-interface-1jod»