docker中处理服务配置的最佳实践
我想使用应用程序创建者提供的docker compose文件在生产环境(单个主机)中部署docker应用程序。基于docker的解决方案被用作单片二进制安装程序的替代品 应用程序附带默认配置,但管理员希望应用适度的配置更改 似乎有几种方法可以将自定义配置应用于docker中处理服务配置的最佳实践,docker,docker-compose,Docker,Docker Compose,我想使用应用程序创建者提供的docker compose文件在生产环境(单个主机)中部署docker应用程序。基于docker的解决方案被用作单片二进制安装程序的替代品 应用程序附带默认配置,但管理员希望应用适度的配置更改 似乎有几种方法可以将自定义配置应用于docker compose.yml文件中定义的服务,但我不确定哪种方法是最佳做法。我目前正在考虑的两个问题是: 将配置烘焙到新图像中。在这里,我将为docker compose文件中定义的每个服务添加一个构建步骤,并创建一个最小的Doc
docker compose.yml
文件中定义的服务,但我不确定哪种方法是最佳做法。我目前正在考虑的两个问题是:
- 将配置烘焙到新图像中。在这里,我将为docker compose文件中定义的每个服务添加一个构建步骤,并创建一个最小的
,它使用Dockerfile
将映像中的现有配置文件替换为我的自定义配置文件。在COPY
语句中使用CMD
和sed
也可用于内联更改配置,而无需大量替换文件echo
- 使用主机上存储配置的绑定装载。在这种情况下,我会将所有自定义配置文件存储在主机上的一个目录中,并在docker compose文件中的每个服务的
参数中定义绑定装载volumes
是否有推荐的方法将自定义配置注入Docker服务?根据您的上下文,我认为使用绑定装载会更好 Docker映像应该在不同的上下文中可重用,仅为特定配置(即环境)构建整个映像将无法达到此目的:
- 您可以创建特定于环境的映像,而不是基本映像提供的常规配置
- 每次需要更改配置时,都需要重建整个映像,而使用绑定装载,只需通过应用程序简单地重新启动或读取配置文件即可
- Docker文档建议: 强烈建议您对任何可变和/或 用户可维护的图像部分。 将配置文件从主机共享到容器
卷
,除非你完全清楚它的作用;绑定装载配置文件不需要它。