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

55

我无法在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运行的。但是,如果我在yum install -y <package>yum update -y命令前面加上sudo,我会得到以下提示:

/bin/sh: sudo: command not found

我正在使用以下基础镜像,以便可以在Docker内轻松运行Java Wildfly应用程序:https://hub.docker.com/r/jboss/wildfly/

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


我认为默认情况下基础镜像中没有安装sudo。 - Jess
1个回答

99

原来基础镜像中的用户设置为jboss
当使用Dockerfile命令USER root切换到root用户后,一切正常。


3
我已经使用 centos/nodejs-6-centos7 成功运行了... 真是太糟糕了! - Marcello DeSales
2
同意使用 centos/python-36-centos7 - tutuca
在切换到“root”执行“yum”步骤之后,您是否应该将其改回原始用户?在您的情况下,“jboss”。 - cryanbhu
是的,切换到ROOT很可能存在安全问题。请查看此线程以获取更好的Docker用户管理:https://dev59.com/O1UM5IYBdhLWcg3wW_N6#48957722 - NateW

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接