提问人:Ali Khalil 提问时间:10/12/2023 更新时间:10/13/2023 访问量:50
Websphere 容器在使用 stopServer.sh 时停止
Websphere container stops when using stopServer.sh
问:
如果我使用 stopServer.sh 脚本停止服务器,Docker 容器会自动停止。重新启动服务器的推荐做法是什么?
我需要应用新配置和docker restart image_id删除新配置。
答:
重新启动服务器的推荐做法是什么?
使用 停止现有容器,使用 删除它,然后使用具有相同选项的新容器。使用 Docker Compose 或 Kubernetes 等更高级别的工具,可以将容器选项存储在 YAML 文件中,从而更轻松地重现地执行此操作。docker stop
docker rm
docker run
我需要应用新的配置...中的配置...
server.xml
在主机系统上获取默认值的副本,可能用于将其从现有容器中获取。在本地编辑它。重新启动容器时,请使用 Docker 绑定挂载将文件注入容器,例如server.xml
docker cp
docker run ... -v "$PWD/server.xml":/etc/websphere/server.xml ...
请勿尝试管理服务器、编辑其配置、重新启动服务器等。以这种方式所做的任何更改都将在容器退出后立即丢失,并且在某些情况下可能导致容器退出您的直接控制之外。docker exec
推荐的做法是在容器启动时使用 jython 脚本进行任何必要的配置。查看此页面 ci.docker.websphere-traditional,它描述了所有可能的选项,例如准备 jython 脚本或属性文件。
例如,您的 dockerfile 如下所示:
FROM ibmcom/websphere-traditional:<version>
# copy property files and jython scripts, using the flag `--chown=was:root` to set the appropriate permission
RUN /work/configure.sh
这是该页面中的示例,它显示了基于属性文件的配置:
例如,如果您有以下 /work/config/001-was-config.props:
ResourceType=JavaVirtualMachine
ImplementingResourceType=Server
ResourceId=Cell=!{cellName}:Node=!{nodeName}:Server=!{serverName}:JavaProcessDef=:JavaVirtualMachine=
AttributeInfo=jvmEntries
#
#
#Properties
#
initialHeapSize=2048 #integer,default(0)
然后,只需生成以下 Dockerfile,即可创建具有此配置的新映像:
FROM ibmcom/websphere-traditional:latest
COPY --chown=was:root 001-was-config.props /work/config/
RUN /work/configure.sh
您可以在 prop 文件名上使用数字前缀,以便可以按适当的顺序应用具有依赖关系的 prop。
它还描述了最佳实践(引用):
根据 Docker 的最佳实践,您应该创建一个新映像 (来自 ibmcom/websphere-traditional),用于添加单个应用程序 以及相应的配置。您应避免将 映像(启动后)通过 Admin Console 或 wsadmin(除非 它用于调试目的),因为如果 从映像生成一个新容器。
与 Liberty 不同,WebSphere 传统版使用非常复杂的配置文件结构,不建议手动更改这些文件。
在本地环境中,重新启动修改后的容器可能是一种临时解决方案,但不能将其视为建议的部署做法。
评论