无法在 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的主要内容,如果未能解决你的问题,请参考以下文章
在centos中再docker一个centos 会不会性能比较低
Docker打包 Asp.Net Core应用,在CentOS上运行