无法在 CentOS 上运行的 Docker 容器中使用 yum

Posted

技术标签:

【中文标题】无法在 CentOS 上运行的 Docker 容器中使用 yum【英文标题】:Can't use yum inside Docker container running on CentOS 【发布时间】:2016-11-03 04:23:58 【问题描述】:

我无法在我的 Docker 容器中运行任何 yum 命令而不会出现以下错误:

ovl: Error while doing RPMdb copy-up:
[Errno 13] Permission denied: '/var/lib/rpm/Group'
You need to be root to perform this command.

我很困惑,因为我很确定 docker 容器是使用默认用户 root 运行的。不过,如果我尝试将 sudo 放在 yum install -y <package>yum update -y 命令前面,我会得到:

/bin/sh: sudo: command not found

我正在使用以下基本映像,因此我可以轻松地在 Docker 中运行 Java Wildfly 应用程序:https://hub.docker.com/r/jboss/wildfly/

底层发行版是CentOS Linux release 7.2.1511 (Core)

【问题讨论】:

我认为 sudo 默认不在基础镜像中。 【参考方案1】:

原来用户在基础镜像中被设置为jboss。 当使用 dockerfile 命令USER root 切换到root 用户时,一切正常。

【讨论】:

运行centos/nodejs-6-centos7...真可惜! 同上centos/python-36-centos7 切换到root执行yum这一步后,要不要改回原来的用户?在你的情况下jboss 是的,切换到 ROOT 可能是一个安全问题。查看此线程以获得更好的 docker 用户管理:***.com/a/48957722/4447761

以上是关于无法在 CentOS 上运行的 Docker 容器中使用 yum的主要内容,如果未能解决你的问题,请参考以下文章

Centos7上运行Docker容器

第五篇:Centos7上配置docker容器ssh登录

在centos中再docker一个centos 会不会性能比较低

Docker打包 Asp.Net Core应用,在CentOS上运行

53.Azure中CentOS的Docker里安装运行SQL Server容器

无法通过容器的 ip 和通过 http 暴露的端口访问 Docker 容器中的 Web 应用程序