Перейти к содержанию

Открываем доступ между сетями и контейнерами Docker


DigneZzZ

Рекомендуемые сообщения

  • Админы

Иногда необходимо предоставить возможность контейнерам общаться между собой, особенно если уже установлен ufw-docker.

Данная статья предполагает что у вас два контейнера и две разные сети. Задача - открыть доступ друг к другу.

1. Настроить правила файрвола для ufw-docker:

sudo ufw default allow incoming
sudo ufw default allow outgoing
sudo ufw allow in on network1 to any port 8080 proto tcp
sudo ufw allow in on network2 to any port 8080 proto tcp
sudo ufw allow in on network1 from network2
sudo ufw allow in on network2 from network1
sudo ufw reload


2. Настроить маршрутизацию между сетями:

docker run -it --rm --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"


3. Протестировать соединение между контейнерами:

docker exec -it container1 bash
# apt-get update && apt-get install -y curl
# curl container2:8080
docker exec -it container2 bash
# apt-get update && apt-get install -y curl
# curl container1:8080


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

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

Вот вроде бы старался человек, писал инструкцию. а толку то? Бесполезный текст. Половина пропущена типа сами разберетесь. Ну где найдем ответ, там и первая половина будет. Наверно.

Цитата

network1 и network2

- что это за имена сетей? где их взять?

Цитата

Важно также убедиться, что правила файрвола корректно настроены и не блокируют доступ между контейнерами

- а как?

Цитата

container1 и container2

Что это? имена или id контейнеров?

В итоге это не инструкция никакая. что-то типа напоминалки для самого себя, если забыл. А если не знаешь, то и не разберешься.

Ссылка на комментарий
Поделиться на другие сайты

  • Админы
22 минуты назад, Андрей сказал:

Вот вроде бы старался человек, писал инструкцию. а толку то? Бесполезный текст. Половина пропущена типа сами разберетесь. Ну где найдем ответ, там и первая половина будет. Наверно.

- что это за имена сетей? где их взять?

- а как?

Что это? имена или id контейнеров?

В итоге это не инструкция никакая. что-то типа напоминалки для самого себя, если забыл. А если не знаешь, то и не разберешься.

Спасибо за нежданный негатив.

Как минимум да, статьи пока созданы для себя. Чтобы не забыть.

Но как я посужу, с докером вы не сильны.

При создании контейнеров, обязательно указывается имя сети которая будет использоваться. Она может быть одинаковой (в таком случае решение проблемы описанной в этой статьи не будет требоваться, контейнеры будут общаться). Но часто бывает так, что контейнеры создаются с разными названиями сетей.

Поэтому да, Network1(2) - это Имена сетей конейнеров. Проверяется командой:

docker network ls

container1 и container2 - это имена контейнеров. Иначе было бы написано containerID.

В итоге для человека который пытается решить проблему - инструкция будет полезна.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Вы принимаете наши Условия использования, Политика конфиденциальности, Правила. А также использование Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.

Яндекс.Метрика