gpt4 book ai didi

用于应用程序打包的 Docker 镜像

转载 作者:行者123 更新时间:2023-12-02 09:44:16 26 4
gpt4 key购买 nike

显然应用程序打包和部署似乎有两种做法

  1. 创建 Docker 镜像并部署它
  2. 从头开始构建和部署应用程序。

我对如何使用选项 1) 感到困惑。前提是你获取一个 docker 镜像并在任何平台上重复使用它。但是,由于环境通常具有特定于平台和应用程序的配置,因此这在实践中如何成为可行的解决方案?我的测试环境中的 docker 镜像无法部署到生产环境,因为它包含模拟和测试级配置。

最佳答案

将应用程序打包为 Docker 镜像的想法是将所有外部/系统配置嵌入到应用程序本身中。即:任何特定版本的外部引擎,例如 java 或 ruby​​;您系统中的基础 GNU/Linux 软件(不再是不同版本的 awk 或 grep)等。

从我的角度来看,开发镜像和生产镜像之间可能存在一些细微的差异,但这种差异应该是较小的配置参数,例如日志级别或类似的东西。使用容器作为应用程序的分发系统的优点是避免与外部差异相关的所有痛苦,也是解决“Web 大小架构”和弹性平台问题的新方法,拥有新的标准方法来部署它们。在您的测试/开发系统中模拟一些外部服务应该不是问题,或者如果是的话,我认为问题在于模拟本身。模拟应该嵌入到您的应用程序容器中,但您可以将它们作为另一个图像(或者在可能的情况下避免模拟服务并将其用作容器)。

编辑1:作为一般方法,如果您使用 Docker 作为帮助持续集成或部署到生产的工具,我不建议使用不同的容器进行开发和生产。如果您有使用 Puppet、Chef、Ansible 或 Salt 等 IT 自动化工具的经验,它们是配置容器的一种简单且可能快速的方法(有些 Chef 具有 docker 特定方法,chef-container,它在这里有一些优势),如果您的基础设施是使用它们构建的,那么这是一个值得考虑的好选择。但是,如果您正在构建/设计基于 Docker 的新架构,我会检查其他更加去中心化和面向容器的选项,例如 Consul 或 etcd,以管理配置模板和数据、服务发现、使用编排器进行弹性部署...

关于用于应用程序打包的 Docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27729537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com