我们使用定制的apache karaf服务器来部署OSGI捆绑软件。我们有一个安装程序,用于安装自定义的apache karaf和OSGI捆绑软件,并作为Linux服务整体运行。安装程序的问题是它需要在捆绑软件所需的属性文件中配置的动态参数。从docker的角度来看,我们正在容器中运行安装程序并手动更新配置文件,因此每次我使用相同的镜像生成新容器时,都需要手动更新配置文件,对吗?
答案 0 :(得分:0)
让我们从这里开始:
“ 我们正在容器中运行安装程序并手动更新配置文件”
为了简单起见,我们还假设您有一个独立的Docker守护程序 启动并运行(没有Swarm或Kubernetes协调器)。
您的问题如下:
“ 因此,每次我使用同一图像生成新容器时,都需要手动更新配置文件”
要减少任何手动干预,可以使用已经写入的属性文件。 这些文件将存储在Docker主机的文件系统上的某个位置。您还需要知道属性文件在容器的虚拟文件系统上的位置。
此时,使用Docker CLI,您可以运行以下命令:
docker run ... -v / the-path / on / the-docker-host-filesystem / to-properties-directory:/ file-location / inside-the-container / to-properties ... docker_img: img_version ...
请注意:
获取有关如何使用Docker卷的更多信息 看看下面的Docker文档页面here。
在Docker Swarm环境中,您可以使用config对象。 为了更好地了解什么是配置以及如何使用它们,请查看here。