Последствия изменения режима '/var/run/docker.sock' на 'a + rwx' в Docker Windows - PullRequest
0 голосов
/ 09 мая 2020

У меня есть сценарий, в котором docker нужно запустить внутри контейнера. Я использую родственный подход docker (Docker За пределами Docker). В этом случае docker устанавливается в основном образе, и при запуске контейнера для этого образа /var/run/docker.sock используется как объем; это позволяет запускать экземпляр docker из контейнера. Запуск исходного контейнера: docker run --rm -v "/var/run/docker.sock:/var/run/docker.sock" ....

Однако, если пользователь в этом исходном контейнере не root, я получаю следующую ошибку при запуске docker внутри контейнера:

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fva
r%2Frun%2Fdocker.sock/v1.40/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'

Одним из способов решения этой проблемы было запустите контейнер как пользователь root, используя флаг -u0: docker run --rm -u0 -v "/var/run/docker.sock:/var/run/docker.sock" .... Затем можно получить доступ к docker.

Теперь мне нужно использовать не root пользователя для начального контейнера. Для этого я сделал следующее:

$ docker run --rm -u0 -t -v "/var/run/docker.sock:/var/run/docker.sock" dood-image bash -c "chmod a+rwx /var/run/docker.sock"

Затем, когда я запускаю команду docker как пользователь, не root, она работает нормально:

$ docker run --rm -t -v "/var/run/docker.sock:/var/run/docker.sock" dood-image bash -c "docker run hello-world"
Hello from Docker!
This message shows that your installation appears to be working correctly.    

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.     
    (amd64)
 3. The Docker daemon created a new container from that image which runs the  
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.
...
...

My вопрос в том, каковы последствия изменения разрешений для файла /var/run/docker.sock? Могут ли возникнуть проблемы с безопасностью?

...