当前位置: 首页 > 知识库问答 >
问题:

如何在GCE上的CentOS下运行podman/buildah容器?

徐新荣
2023-03-14

1. 总结问题

我正在按照开发人员RedHat的这个简单教程来使一个简单的节点/快速容器正常工作。

我无法让容器在 GCE 上的 CentOS 7 虚拟机下运行。

我有一台 CentOS 7 GCE 虚拟机,我安装了泊坞窗。

我能够成功构建和运行Docker容器,并将它们推送到Google的容器注册表,没有问题。

现在我正在尝试构建podman/buildah容器,并做同样的事情。我已经安装了buildman/podman。当我运行时:

podman build -t hello-world-nodejs .

我得到以下错误消息:

无法克隆:无效参数/proc/sys/user/max _ user _ namespaces中未启用用户命名空间错误:无法获取运行时:无法重新执行进程

任何想法?

此外,如果有任何指南可以将此图像放入Google的容器注册表并在Cloud Run下运行,将不胜感激。

最终,一些容器的目的地是云服务。

2.提供背景,包括您已经尝试过的内容

我尝试过在网络上搜索解决方案,到目前为止还没有找到解决问题的方法。

3.显示一些代码

podman build -t hello-world-nodejs .

4.描述预期和实际结果,包括任何错误消息

我可以在这个GCE虚拟机上创建和运行docker映像/容器,我正在尝试用buildah/podman做同样的事情。

共有2个答案

孔宇
2023-03-14

我在GCE上运行了一个CentOS 7虚拟机,也遇到了同样的问题。导致该问题的原因是默认情况下内核上没有启用用户名称空间。您有两种选择,要么以root用户身份运行podman(或使用sudo),要么在CentOS VM中启用用户名称空间(困难的方式)。

根据这里的文章,用户名称空间的使用以及uid和gid的分配是使无根容器在您的环境中安全工作所必需的。

可能堆栈溢出不是提出这个问题的最佳位置。最好在服务器保险箱站点中询问,因为它是服务器而不是编码问题。

郎星汉
2023-03-14

以下为我解决了这个问题:

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"

然后,如果您遇到与< code>lchown相关的错误,请运行以下命令:

sudo rm -rf ~/.{config,local/share}/containers /run/user/$(id -u)/{libpod,runc,vfs-*}
 类似资料:
  • 我想运行podman作为运行CI/CD管道的容器。然而,我一直从podman容器中得到这个错误: 我使用Jenkins Kubernetes插件来编写CI/CD管道,这些管道在Kubernetes集群中作为容器运行。我已经成功地编写了使用Docker-in-Docker容器来运行< code>docker build和< code>docker push命令的管道。 然而,在容器中运行Docker

  • 我正在运行一些应用程序,其中应用程序必须知道它在PODMAN内部运行,没有任何额外的env变量,但容器中的PODMAN配置必须提供细节,而没有任何用户交互。 现在,我正在使用cat容器内部开始使用podman检查进程是否在容器内部。 有没有更好的方法来处理同样的问题?

  • 我在尝试使用Podman在RedHat 8上运行OpenMaptileServer时遇到问题。 这是我的开始脚本: 图像拉得很好,而且开始看起来很好。我可以执行 看看那个容器。一切看起来都很好。如果我用 我没有看到任何我认为是一个问题,但是当我试图击中主页http://localhost:8080,然后我得到站点未找到的错误。 我想这可能是防火墙的问题,所以我禁用了防火墙,但结果相同。我还通过安装

  • 在刚刚开始使用容器的工作中。在设置过程中花了10秒钟的时间,我用podman构建了一个RHEL 8系统。有两个不同的非根用户在运行容器。每个用户看到正在运行的容器时运行“podman ps”,总计3个。root看不到任何正在运行的容器。为什么?root不应该能够看到与所有者相同的正在运行的容器吗?我没有发现任何迹象表明这种情况应该发生,或者只是一个新手的错误。任何文档都会有所帮助。

  • 问题内容: 我无法在Docker容器中运行任何yum命令,而没有出现以下错误: 我很困惑,因为我非常确定docker容器是使用默认用户root运行的。不过,如果我尝试将sudo放在a 或command 前面,则会得到: 我正在使用以下基本映像,以便可以在Docker中轻松运行Java Wildfly应用程序:https ://hub.docker.com/r/jboss/wildfly/ 底层发行

  • 我已经在我的主机虚拟机上安装了docker。现在想用vi创建一个文件。 但它向我展示了一个错误: