1。总结问题
我正在遵循Developers RedHat的this simple tutorial,以使一个简单的节点/表达容器正常工作。
我无法让容器在GCE上的CentOS 7 VM下运行。
我有一个安装了Docker的CentOS 7 GCE虚拟机。
我能够成功构建并运行Docker容器,并将它们毫无问题地推送到Google的容器注册表中。
现在,我正在尝试构建podman / buildah容器,并执行相同的操作。 我安装了buildman / podman。当我运行此命令时:
@Component({
...
encapsulation: ViewEncapsulation.NONE
})
我收到以下错误消息:
无法克隆:/ proc / sys / user / max_user_namespaces中未启用无效的参数用户名称空间错误:无法获取运行时:无法重新执行进程
有什么想法吗?
此外,如果有任何指南将该图像导入Google的容器注册表并在Cloud Run下运行,将不胜感激。
某些容器的最终目的地是云服务。
2。提供背景,包括您已经尝试过的内容
我已经尝试过在网络上搜索解决方案,但到目前为止,没有任何东西可以解决问题。
3。显示一些代码
podman build -t hello-world-nodejs .
4。描述预期和实际结果,包括任何错误消息
我可以在此GCE VM上创建并运行docker映像/容器,我正在尝试对buildah / podman进行同样的操作。
答案 0 :(得分:1)
以下内容为我解决了这个问题:
sudo bash -c 'echo 10000 > /proc/sys/user/max_user_namespaces'
sudo bash -c "echo $(whoami):110000:65536 > /etc/subuid"
sudo bash -c "echo $(whoami):110000:65536 > /etc/subgid"
然后,如果遇到与lchown
相关的错误,请执行以下操作:
sudo rm -rf ~/.{config,local/share}/containers /run/user/$(id -u)/{libpod,runc,vfs-*}
答案 1 :(得分:0)
我在GCE上启动了一个CentOS 7 VM,并遇到了同样的问题。造成此问题的原因是,默认情况下,内核上未启用用户命名空间。您有2种选择,要么以root身份运行podman(或使用sudo),要么在CentOS VM中启用用户命名空间(困难的方式)。
根据here帖子,使用用户命名空间以及为使无根容器在环境中安全运行所需的uid和gid分配。
可能不是最好的StackOverflow问这个问题。最好在ServerFault站点中询问,因为它是服务器而不是编码问题。