Я бы хотел, чтобы один из моих контейнеров мог управлять самим докером, как я сейчас это делаю, просто открывая сокет изнутри, но я это не нравится. Что я' Я действительно хотел бы сделать это через TCP, с аутентификацией. Я не уверен в том, как я могу открыть tcp-сокет docker (на согласованном IP-адресе или домене) только для внутренней частной сети.
Как я могу предоставить docker как услугу для моих контейнеров?
Docker не имеет аутентификации на своем сокете. Любой, у кого есть доступ к сокету, может управлять всеми контейнерами и может эффективно вырваться из контейнера и стать пользователем root на хосте контейнера (если SELinux не используется).
Во-первых, будьте предельно осторожны, если решите сделать это, что вы запускаете только доверенный код.
Во-вторых, забудьте о TCP; просто подключите сокет Docker к контейнеру. Таким образом, только этот конкретный контейнер может получить доступ к Docker.
docker run -v /run/docker.sock:/run/docker.sock privileged_container