Назад | Перейти на главную страницу

Как я могу предоставить docker tcp api частной сети контейнеров?

Я бы хотел, чтобы один из моих контейнеров мог управлять самим докером, как я сейчас делаю, просто открывая сокет изнутри, но мне это не нравится. Что я действительно хотел бы сделать, так это сделать это через tcp с аутентификацией. Я не уверен в том, как я могу открыть tcp-сокет докера (на согласованном IP-адресе или домене) только для внутренней частной сети.

Как я могу предоставить докер как услугу для моих контейнеров?

Докер не имеет аутентификации на своем сокете. Любой, кто может получить доступ к сокету, может управлять всеми контейнерами, а также может эффективно выйти из контейнера и стать пользователем root на хосте контейнера (если SELinux не используется).

Во-первых, будьте предельно осторожны, если вы решите это сделать, потому что вы используете только доверенный код.

Во-вторых, забудьте о TCP; просто подключите сокет Docker к контейнеру. Таким образом, только этот конкретный контейнер может получить доступ к Docker.

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