Python社区  »  docker

容器内的Docker套接字权限

RSHAP • 4 周前 • 41 次点击  

我试图从容器中的用户访问在主机上运行的Docker。我正试图通过将主机上的套接字映射到容器卷来完成此操作。 docker run -it -v /var/run/docker.sock:/var/run/docker.sock myimage bash

在我的主人身上 ls -l on/var/run/docker.sock显示所有者是我的普通主机用户(不是根用户),但是当我查看容器时,它是由根用户拥有的。因此,当我试图连接到容器内的Docker时,我得到了“拒绝许可”。这是一个示例图像

FROM ubuntu:latest
USER root

RUN apt-get update -y && apt-get upgrade -y \
    && apt-get install -y python python-dev python3.6 python-pip 
virtualenv libssl-dev libpq-dev git build-essential libfontconfig1 
libfontconfig1-dev
RUN pip install setuptools docker


RUN useradd -ms /bin/bash -d /usr/local/myuser myuser
RUN chown -R myuser: /usr/local/myuser
USER myuser

建立形象

docker build -t myimage .

启动bash shell

docker run-it-v/var/run/docker.sock:/var/run/docker.sock myimage bash

例如,尝试通过python连接

python -c "import docker; c = docker.from_env(); c.containers.list()

给出一个拒绝权限错误。

如何映射卷的正确权限(以及映射卷时为什么更改权限)?是否可以在dockerfile或run命令中执行此操作(例如,我的实际应用程序使用docker compose)。

我试过在我的dockerfile中创建一个docker组并将我的用户添加到该组中,但这似乎不起作用,我不知道为什么,但可能是因为我在Mac上,使用GUI安装程序安装了docker。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38288
 
41 次点击  
分享到微博
文章 [ 1 ]  |  最新文章 4 周前
Dmitrii
Reply   •   1 楼
Dmitrii    6 月前

用户的简单更改uid,

RUN useradd -ms /bin/bash -d /usr/local/myuser -u ${UID} myuser

在哪里可以通过

id 

在终点站