【发布时间】:2019-12-09 08:56:00
【问题描述】:
我有一个主容器实例 (Node.js),它在临时工作 docker 容器中运行一些任务。
使用的基础镜像是node:8-alpine,入口点命令以用户node(非root用户)执行。
我尝试使用以下命令运行我的容器:
docker run \
-v /tmp/box:/tmp/box \
-v /var/run/docker.sock:/var/run/docker.sock \
ifaisalalam/ide-taskmaster
但是当 nodejs 应用尝试运行 docker 容器时,会抛出权限被拒绝错误 - 应用无法读取 /var/run/docker.sock 文件。
通过sh访问这个容器并运行ls -lha /var/run/docker.sh,我看到文件归root:412所有。这就是为什么我的node 用户无法运行 docker 容器的原因。
主机上的/var/run/docker.sh文件归root:docker所有,所以我猜容器内的412是主机的docker组ID。
如果有人可以为我提供一种解决方法,让我在 GCE 上的 Container-optimized OS 中从 docker 容器运行 docker,我会很高兴。
我正在尝试运行的图像的源 Git 存储库链接是 - https://github.com/ifaisalalam/ide-taskmaster
【问题讨论】:
-
@ASLIM 我不这么认为。我只在 GCP 上面临这个问题。在我的机器上,一切都像魅力一样运作。我的问题与从 docker 中运行 docker 有关。
标签: docker google-cloud-platform