如何在Google云计算引擎VM上的容器优化操作系统中运行docker中的docker?
我有一个主容器实例(Node.js),它在临时工作者docker容器中运行一些任务 使用的基本映像是如何在Google云计算引擎VM上的容器优化操作系统中运行docker中的docker?,docker,google-cloud-platform,Docker,Google Cloud Platform,我有一个主容器实例(Node.js),它在临时工作者docker容器中运行一些任务 使用的基本映像是node:8-alpine,entrypoint命令与usernode(非root用户)一起执行 我尝试使用以下命令运行容器: docker运行\ -v/tmp/box:/tmp/box\ -v/var/run/docker.sock:/var/run/docker.sock\ Ifaisalam/ide任务主管 但是当nodejs应用程序尝试运行docker容器时,会抛出“权限拒绝”错误-应用
node:8-alpine
,entrypoint命令与usernode
(非root用户)一起执行
我尝试使用以下命令运行容器:
docker运行\
-v/tmp/box:/tmp/box\
-v/var/run/docker.sock:/var/run/docker.sock\
Ifaisalam/ide任务主管
但是当nodejs应用程序尝试运行docker容器时,会抛出“权限拒绝”错误-应用程序无法读取/var/run/docker.sock
文件
通过sh
访问此容器并运行ls-lha/var/run/docker.sh
,我看到该文件属于root:412
。这就是为什么我的节点
用户无法运行docker容器的原因
主机上的/var/run/docker.sh
文件属于root:docker
,因此我猜容器中的412
是主机的docker组ID
如果有人能为我提供一个在GCE上的容器优化操作系统中从docker容器运行docker的解决方案,我将非常高兴
我尝试运行的映像的source Git repository链接是-将以下命令添加到主机的启动脚本中可以解决此问题:
sudo chmod 666/var/run/docker.sock
我只是不确定这是否是在生产环境中运行的应用程序的安全解决方案
编辑:
这个答案暗示了另一种可能也有效的方法-
另外,您可以阅读这篇文章-可能重复@ASLIM,我不这么认为。我只在GCP上面对这个问题。在我的机器上,一切都像一个符咒。我的问题与从docker内部运行docker有关。