gpt4 book ai didi

docker - Openshift中的WAS Liberty Docker镜像部署问题

转载 作者:行者123 更新时间:2023-12-02 21:17:56 30 4
gpt4 key购买 nike

能够在本地Docker容器中部署Liberty Docker镜像,并且可以访问Liberty服务器。

我将自由镜像推送到安装在系统中的Minishift上,但是在创建docker容器时,面临如下错误:

有人尝试过吗,请分享您的看法:

日志跟踪:

unable to write 'random state'
mkdir: cannot create directory '/config/configDropins': Permission denied
/opt/ibm/docker/docker-server: line 32:
/config/configDropins/defaults/keystore.xml: No such file or directory
JVMSHRC155E Error copying username into cache name
JVMSHRC686I Failed to startup shared class cache. Continue without
using it as -Xshareclasses:nonfatal is specified
CWWKE0005E: The runtime environment could not be launched.
CWWKE0044E: There is no write permission for server directory
/opt/ibm/wlp/output/defaultServer

最佳答案

默认情况下,OpenShift将图像作为项目唯一的分配用户ID运行。已经编写了许多可用的图像,因此即使它们不需要以root运行,它们也只能作为root运行。

如果尝试运行这样的镜像,因为已经设置了目录/文件,因此它们只能由root用户写入,所以以非root用户ID运行镜像将导致其失败。

最佳实践是编写图像,以便可以作为任意用户ID运行。不幸的是,很少有人这样做,其结果是无法在更安全的 Multi-Tenancy 环境中使用其镜像来在容器中部署应用程序。

OpenShift文档提供了有关如何实现镜像的指南,以便可以在这样更安全的环境中运行。请参阅以下部分中的“支持任意用户ID”部分:

  • https://docs.openshift.org/latest/creating_images/guidelines.html

  • 如果镜像是由第三方构建的,并且他们对更改其镜像不感兴趣,因此可以在安全的 Multi-Tenancy 环境中工作,则可以选择几种方法。

    首先是创建一个派生的镜像,在构建镜像的步骤中,该镜像应返回并修复目录和文件的权限,以便可以使用。请注意,在执行此操作时,您必须注意更改权限的权限,因为更改派生图像中文件的权限会导致生成文件的完整副本。如果文件很大,这将开始放大图像大小。

    第二个问题是,如果您是OpenShift集群的管理员,则可以放宽该集群的安全性,以运行镜像的服务帐户,以便允许它以 root的身份运行容器。如果可能,您应该避免这样做,尤其是对于您不信任的第三方图像。有关如何执行此操作的详细信息,请参见:
  • https://docs.openshift.org/latest/admin_guide/manage_scc.html#enable-images-to-run-with-user-in-the-dockerfile

  • 如果需要修复权限的总大小很小,则可以与某些图像一起使用的最后一种方法是,使用init容器制作需要对 emptyDir卷进行写访问的目录的副本。然后在主容器中,将 emptyDir卷复制到目录顶部。这避免了需要修改图像或启用 anyuid。如果还必须复制应用程序二进制文件,则 emptyDir卷中的可用空间量可能不够。这可能仅在应用程序要更新配置文件或创建锁定文件的地方起作用。如果同一目录用于大量临时文件系统数据(例如缓存数据库或日志),则将无法使用此目录。

    关于docker - Openshift中的WAS Liberty Docker镜像部署问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49349473/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com