docker Websphere container在使用stopServer.sh时停止

rekjcdws  于 2023-10-16  发布在  Docker
关注(0)|答案(2)|浏览(161)

如果我使用stopServer.sh脚本停止服务器,Docker容器会自动停止。重启服务器的推荐做法是什么?
我需要应用一个新的配置,然后docker restart image_id删除新的配置。

91zkwejq

91zkwejq1#

推荐的做法是在容器启动时使用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),添加单个应用程序和相应的配置。您应该避免通过管理控制台或wsadmin手动配置映像(在启动后)(除非是出于调试目的),因为如果您从映像生成新容器,则不会出现此类更改。
与Liberty不同,WebSphere传统使用非常复杂的配置文件结构,不建议对这些文件进行手动更改。
在本地环境中重新启动修改后的容器可能是一种临时解决方案,但不能将其视为推荐的部署实践。

uwopmtnx

uwopmtnx2#

重启服务器的推荐做法是什么?
使用docker stop停止现有容器,使用docker rm删除它,然后使用相同的选项docker run创建一个新容器。使用Docker Compose或Kubernetes等高级工具可以将容器选项存储在YAML文件中,这将更容易重复执行此操作。
我需要应用一个新的配置. server.xml中的配置.
在您的主机系统上获取默认server.xml的副本,可能使用docker cp从现有容器中获取它。在本地编辑。重新启动容器时,使用Docker绑定挂载将文件注入容器,如

docker run ... -v "$PWD/server.xml":/etc/websphere/server.xml ...

不要使用docker exec来尝试管理服务器、编辑其配置、重新启动服务器等。* 当容器退出时,您以这种方式所做的任何更改都会丢失,并且在某些情况下,可能会导致容器退出您的直接控制范围之外。

相关问题