Keycloak Docker 镜像基本 unix 命令不可用

Nic*_*Ath 9 redhat docker keycloak

我通过运行.yml使用 docker image 的文件来设置我的 Keycloak 识别服务器jboss/keycloak:9.0.0

现在我想进入容器并修改一些文件以便进行一些测试。

不幸的是,当我进入正在运行的容器后,我意识到没有找到一些非常基本的 UNIX 命令,例如sudoor vi(以及更多)(以及我用来下载命令包但失败的命令,例如apt-getor )。yum

根据这个问题,容器的底层操作系统( Redhat Universal Base Image)似乎使用该命令microdnf来管理软件,但不幸的是,当我尝试使用此命令执行任何操作时,我收到以下消息:

错误:无法创建:/var/cache/yum/metadata

您能为我的案例提出任何解决方法吗?我只需要使用文本编辑器命令(如vi、 )和我的用户的 root 权限(因此命令如sudosuchmod)。提前致谢。

小智 6

如果您仍然出于某种原因想要exec进入容器,请尝试添加--user root到您的docker exec command.

只需 exec:ing 进入容器,而无需--user以 user 身份执行此操作jboss,该用户似乎拥有较少的权限。


Jan*_*raj 3

看起来您正在尝试在 docker 世界中使用非 docker(老派)世界的方法。那是不对的。通常,您不需要转到容器并在那里编辑任何配置文件 - 该更改很可能会丢失(这取决于容器配置)。容器通常通过环境变量或卷进行配置。

如何使用 TLS 证书的示例:Keycloak Docker 需要 HTTPS

https://hub.docker.com/r/jboss/keycloak/也是检查可用环境变量的良好起点,这可以帮助您实现所需的目标。例如,PROXY_ADDRESS_FORWARDING=true启用选项,当您可以在负载均衡器后面运行 Keycloak 容器而无需触摸任何配置文件时。

我想说的是,在构建中添加自己的配置文件并不是最好的选择 - 您必须维护自己的映像。只需使用卷并使用主机操作系统文件系统中您自己的配置文件“覆盖”容器中的默认配置文件,例如:

-v /host-os-path/my-custom-standalone-ha.xml:/opt/jboss/keycloak/standalone/configuration/standalone-ha.xml
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的建议,确实,我在 .yml 文件中安装了包含证书和修改后的standalone-ha.xml 文件的独立配置文件夹,看起来这就是我应该首先完成的方式。 (2认同)