bash - 在 unix :///var/run/docker. sock 处拒绝 Docker 守护程序套接字的权限

标签 bash docker gulp dockerfile docker-run

我有这个Dockerfile :

FROM chekote/gulp:latest 

USER root
RUN apt-get update \
      && apt-get upgrade -y \
      && apt-get install -y sudo libltdl-dev

ARG dockerUser='my-user-name';
ARG group='docker';

# crate group if not exists
 RUN if ! grep -q -E "^$group:" /etc/group; then groupadd $group; fi

# create user if not exists
 RUN if ! grep -q -E "^$dockerUser:" /etc/passwd; then useradd -c 'Docker image creator' -m -s '/bin/bash' -g $group $dockerUser; fi

# add user to the group (if it was present and not created at the line above)
 RUN usermod -a -G ${group} ${dockerUser}

# set default user that runs the container
 USER ${dockerUser}

我这样构建:
docker build --tag my-gulp:latest .

最后由 script 运行这边走:
#!/bin/bash

image="my-gulp:latest";
workDir='/home/gulp/project';

docker run -it --rm  \
-v $(pwd):${workDir} \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
${image} /bin/bash

让我正确登录到 docker 容器,但是当我想查看图像时
docker images

或尝试拉图像
docker pull hello-world:latest

我收到此错误:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.38/images/json: dial unix /var/run/docker.sock: connect: permission denied



如何从 chekote/gulp:latest 创建 docker 镜像所以我可以在里面使用docker而不会出错?

或者错误可能是因为错误的 docker run 命令?

最佳答案

避免这种情况的快速方法。将您的用户添加到组中。

sudo gpasswd -a $USER docker

然后设置适当的权限。
sudo setfacl -m user:<your username>:rw /var/run/docker.sock

从那里应该很好。

关于bash - 在 unix :///var/run/docker. sock 处拒绝 Docker 守护程序套接字的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72603871/

相关文章:

javascript - 将 typescript 库捆绑到一个 .js 文件和一个 .d.ts

bash - `docker run` 输出到 bash 变量 - 奇怪的行为

linux - Docker:--ipc=主机和安全

docker - dockercloud haproxy在不同端口上具有多个服务

javascript - 吞下目的地 : warn if 2 tasks try to write to the same destination

javascript - WordPress 主题 - 删除未使用的 css

bash 脚本根据 stdout 消息发出蜂鸣声

linux - '声明-A x' 与 'declare -A x=()'

regex - 使用 grep 和 regex 打印文件

python-3.x - Docker 中的 python 脚本需要访问不同 Docker 镜像中存在的 API 数据