Предоставление доступа оболочки к определенному контейнеру Docker пользователю, который не добавлен в группу Docker.

Моя задача - предоставить доступ к определенному Docker-контейнеру без добавления пользователя в docker группа.

Что я сделал

1) сделал nsenter-based скрипт, который должен войти в контейнер (назовем его script1.sh)

#!/bin/bash
PID=$(docker inspect --format {{.State.Pid}} kayako-dashboard)
nsenter --target $PID --mount --uts --ipc --net --pid /bin/sh

2) Сделать этот скрипт глобально доступным sudo ln -s /full/path/to/script1.sh /usr/local/bin/some_new_command

3) Настроил целевой ключ SSH, добавив command="some_new_command" до ssh-rsa в authorized_keys файл.

Но когда я захожу под целевым пользователем

sshpass -p <user_password> ssh <target_user>@<docker_host> "some_new_command"

Я получил ошибку Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

Что не так и есть ли способ исправить?

Моя версия ядра 4.4.0, поэтому он поддерживает вход в пространство имен pid.

версия nsenter: nsenter from util-linux 2.27.1

PS Даже если я добавлю <target_user в docker группа и попытаться выполнить some_new_command Я получил ошибку: nsenter: cannot open /proc/<PID>/ns/ipc: Permission denied

PPS Если я использую sudo some_new_command исполняются нормально.

0 ответов

Другие вопросы по тегам