Запуск контейнера в изолированной сети без интернета

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

dockerконтейнерсеть

ℹ️ Бывают ситуации, когда нужно запустить контейнер без доступа в интернет, но при этом сохранить взаимодействие между контейнерами (например, в среде CI/CD, тестировании или для повышения безопасности).

  1. 🚫 1. Создаём кастомную сеть без выхода в интернет:

    docker network create --internal no-internet

    ❕ Опция --internal запрещает выход контейнеров в интернет.

  2. 🐳 2. Запускаем контейнер внутри этой сети:

    docker run -d --network no-internet --name isolated_container ubuntu
  3. 🌐 3. Если нужно добавить ещё один контейнер, он сможет взаимодействовать с первым, но без выхода наружу:

    docker run -d --network no-internet --name db postgres
  4. ✔️ 4. Проверяем, что контейнеры "видят" друг друга, но не имеют интернета:

    docker exec -it isolated_container ping -c 3 db
    docker exec -it isolated_container ping -c 3 8.8.8.8  # тут будет timeout

Как временно дать интернет контейнеру?

docker network connect bridge isolated_container

Проверяем интернет:

docker exec -it isolated_container ping -c 3 8.8.8.8

После завершения работ снова изолируем:

docker network disconnect bridge isolated_container

✳️ Полезный трюк для продвинутого управления контейнерными сетями!

tags: #полезно #docker #сети

🧭 @recura_tech

Стилизованная иллюстрация контейнера с замком в центре, окружённого иконками баз данных, пакетов и глобальной сети, символизирующая изоляцию.
Иллюстрация: контейнер в изолированной сети с иконками сервисов и замком.

Читайте так же