Запуск контейнеров через контейнер Ubuntu

#docker #ubuntu #ubuntu-18.04

#docker #ubuntu #ubuntu-18.04

Вопрос:

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

К сожалению, после установки Docker через контейнер Ubuntu он выдает следующую ошибку:

Не удается подключиться к демону Docker в unix:///var/run/docker.sock. Запущен ли демон docker?

Возможно ли использовать Docker поверх контейнеров? Работает ли эта идея?

Кроме того, если это не лучший способ решить исходную проблему, не могли бы вы предложить мне лучшее решение?

Ответ №1:

Первый вопрос:

Я думаю, вам нужно привязать демон docker к вашему контейнеру Ubuntu

-v /var/run/docker.sock:/var/run/docker.sock

Или необязательно с использованием официального образа docker с флагом DinD (docker в docker), который основан на Ubuntu 18.09

docker run --privileged --name some-docker -v /my/own/var-lib-docker:/var/lib/docker -d docker:dind


Второй вопрос:

Вместо контейнера Ubuntu с docker вы могли бы использовать reverse proxy перед другими вашими сервисными контейнерами.

Например, traefik или nginx

введите описание изображения здесь

Комментарии:

1. Спасибо. Решение для тома сработало, но теперь контейнеры связаны с контейнерами хоста, что приведет к аннулированию назначения решения. Есть какие-либо комментарии по этому поводу? Кроме того, спасибо за решение с обратным прокси.

Ответ №2:

Вы можете использовать kubernetes, создавать несколько пространств имен для каждого разработчика. Используйте nginx и dynamic server_name для сопоставления URL-адреса с различными пространствами имен.