gpt4 book ai didi

docker - 我可以使用 docker 来隔离我的开发环境吗?

转载 作者:IT老高 更新时间:2023-10-28 21:43:07 26 4
gpt4 key购买 nike

好吧,这让我发疯了。我已经阅读了很多关于 Docker 的内容,但仍然无法理解 - 对我来说是 docker...

我在工作中使用 Mac OS X,并使用 vagrant 启动带有 Ubuntu 的虚拟机进行开发。我对每个项目都使用 vagrant,因为我希望拥有与在生产服务器上使用的相同的操作系统和库。我讨厌 rbenv 和 nvm 之类的工具,因为它们的使用会增加终端的启动时间。如果两者都被激活,我需要等待 2..4 秒才能准备好新的终端选项卡。我打字很快,这种延迟会影响我的工作效率。

我对 vagrant 没意见,但使用 virtualbox 需要为每个 VM 提供约 800 mb 的 RAM...太多了。

所以问题是:我可以像 vagrant 一样使用 docker 吗?假设我有两个项目,我需要对项目 A 使用 Ruby 2.0,对项目 B 使用 Ruby 2.3,docker 是否可以/正确地创建两个容器,每个容器都有自己的 Ruby 版本?而且我不希望这些版本的 Ruby 与系统 Ruby 相交。

对于 vagrant,我只创建了两个虚拟机,一个使用 Ruby 2.0,第二个使用 Ruby 2.3。如果我不需要它们中的任何一个,我将销毁 VM,并且我的系统将保持清晰,而无需在 guest 计算机上安装软件。

已编辑:我知道我不能在 OS X 上原生使用 Docker。让我们假设一些 Linux Ubuntu/Debian/Arch/etc。我已经准备好迁移到 Linux,如果我知道 Linux+Docker 会给我我想要的。

最佳答案

您可以使用适用于 Mac OS X 的新 docker beta 在 Mac OS X 中使用 Docker。它仍然使用 VM,但比 Virtualbox 更轻巧。此外,它还支持与 OS X 更好的集成。到目前为止,它还是有一些问题。

要回答您的问题,是的,您可以在 docker 容器内使用所需的运行时创建环境,而不会影响其他容器或系统。请记住,容器通常在其中运行一个进程,因此不要期望像在 vagrant box 中那样运行多个服务。它不是一个完整的操作系统,它只是一个运行在不同内核命名空间中的可执行文件。如果你想运行多个进程,有一些变通方法,但“正确”的方法是使用多个容器连接在一起,使用 docker-compose 之类的东西。

关于docker - 我可以使用 docker 来隔离我的开发环境吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37896348/

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