作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
能够在本地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”部分:
root
的身份运行容器。如果可能,您应该避免这样做,尤其是对于您不信任的第三方图像。有关如何执行此操作的详细信息,请参见:
emptyDir
卷进行写访问的目录的副本。然后在主容器中,将
emptyDir
卷复制到目录顶部。这避免了需要修改图像或启用
anyuid
。如果还必须复制应用程序二进制文件,则
emptyDir
卷中的可用空间量可能不够。这可能仅在应用程序要更新配置文件或创建锁定文件的地方起作用。如果同一目录用于大量临时文件系统数据(例如缓存数据库或日志),则将无法使用此目录。
关于docker - Openshift中的WAS Liberty Docker镜像部署问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49349473/
我是一名优秀的程序员,十分优秀!