gpt4 book ai didi

docker - Docker的环境标准化

转载 作者:行者123 更新时间:2023-12-02 20:05:47 25 4
gpt4 key购买 nike

我在一个问题上苦苦挣扎,似乎没人能在互联网上详细回答

“在整个管道中实现标准化的服务基础架构,使每个团队成员都可以在生产平价环境中工作”

这是Docker的主要优势:它允许每个人在类似于生产的环境中进行开发,测试或进行任何操作。因为通过管道传递的容器总是相同的。
我明白了。我知道这是必要的,并且Docker允许这样做。
但是我不明白,是为什么在Docker之前这么难? 如果我有生产机器和测试机器,那么无论机器是什么,构建安装正确依赖项的脚本都不会有问题。因此,就库或框架而言,我的环境将是相同的。

我对整个与环境相关的好处唯一了解的是,Docker允许开发人员选择操作系统,而不必担心与平台相关的错误。我已经遇到了可以在Windows而非Mac上运行的功能。我认为最糟糕的错误。所以是的,如果我当时有Docker,我就不会遇到这个问题。但是我不明白为什么Docker对于其他与环境相关的东西如此神奇。

我认为我不了解这一点,因为我只从事小型项目。也许我也没有意识到“环境”一词的全部含义。

我在这里想念什么?为什么容器是标准化环境的突破,而脚本却可以实现呢?

最佳答案

以下列表并不详尽,它仅表示Docker的三个重要优点。请注意, docker 并不是一个神奇的解决方案,因此可能无法在特定环境下进行调整。

首先,使用容器,依赖项之间没有冲突。

If you have two programs using the same library at different version you'll have to manually install both versions and specify custom environment variables before executing your programs. (For example LD_LIBRARY_PATH). Please note that some tools exists to address this issue but only in specific cases (virtualenvs in python for example).



其次,对于容器 ,您没有持久性

For example if you write a little bash script to install your development environment based on Nginx and PHP and by mistake I install Apache, my package will still be present even if you run again your script. The thing is Apache will sometimes starts before Nginx and block the 80 port, breaking your development environment.



综上所述,没有docker,您不确定不确定元素的状态,它们可能会破坏您的环境。

第三,docker允许您 缩小开发和生产之间的差距。

The close environment is "everything needed for your code to run". For example libraries, config files, your interpreter (python, php, ...). Docker packages the application with its close environment so you don't have mismatches between what your app needs and the environment you provided.



当您在开发过程中更新依赖项并且可能忘记在生产环境中更新依赖项时,这一点尤其重要。

错误的说法是安全性和隔离性。安全过程始于定义威胁模型,然后选择对策。添加docker因为在危险环境中提高了安全性是不够的(没有内核空间隔离),而如果不需要的话添加docker来保证安全性被称为paranoïa。 Docker添加了用户空间隔离和默认的seccomp配置文件,但这不是使用它的理由,除非它与您的威胁模型匹配。

关于docker - Docker的环境标准化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49570772/

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