gpt4 book ai didi

containers - 为什么Docker(基于容器的技术)有用

转载 作者:行者123 更新时间:2023-12-02 21:29:42 28 4
gpt4 key购买 nike

最近,我一直在研究docker及其对SaaS公司的有用性。我花了一些时间学习如何容器化应用程序,并简要了解了什么是docker和容器。我在理解这项技术的实用性时遇到了一些问题。我看过dockercon的一些视频,似乎每个人都在谈论docker如何简化部署以及如何确保在开发环境中进行部署可以保证在生产环境中运行。但是,我有一些问题:

  • 从dev环境直接将容器部署到生产环境意味着开发人员应在内部容器中进行开发,这些容器与将在生产环境中运行的容器相同。实际上这是不可能的,因为开发人员喜欢使用IDE来开发自己的精美MAC。如果要求开发人员将它们放入容器中并在其中开发代码,开发人员将大为反感。那么,这在当前使用docker的公司中如何运作?
  • 如果我们假设开发流程不会改变。开发人员将在本地进行开发,并将其代码推送到仓库中。那么“容器化应用程序”在工作流程中适合什么地方?
  • 同样,如果开发人员未在容器内进行开发,则将违反“开发人员即部署并保证能正常工作”的假设。如果是这种情况,那么我只能看到docker提供的唯一好处是隔离,这与虚拟化提供的东西相同,当然开销也较低。所以我的问题是,低开销是Docker在虚拟化方面的唯一优势吗?还是我看不到其他东西?
  • 最佳答案

  • 您可以在容器外部编写代码并将其以许多不同方式传输到容器中。一些示例包括:
  • 在本地进行编码,并在使用docker buildADD语句作为COPY
  • 的一部分进行 Dockerfile时包括源代码
  • 在本地进行编码,并将您的代码推送到诸如GitHub之类的源代码存储库,然后让构建过程将代码作为docker build
  • 的一部分拉入容器
  • 在本地编码,然后将本地源代码目录安装为与容器共享的卷。

  • 前两个允许您在生产和开发中具有完全相同的构建过程。最后一个示例不适用于生产,但可以使用 ADD语句(即第一个示例)快速转换为生产
  • 在Docker工作流程中,开发人员可以创建源代码(在git,mercurial等存储库中存储和共享源代码)和现成的容器,通过https://registry.hub.docker.comlocal registry存储库来存储和共享现成的容器。 。
  • 您开发和测试的容器化运行代码正是可以投入生产的东西。那是优势之一。此外,您还将获得隔离,有趣的容器到容器网络连接以及与越来越多的devops工具集成的工具集成,这些工具可用于创建,维护和部署容器。
  • 关于containers - 为什么Docker(基于容器的技术)有用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24746478/

    28 4 0