在容器Docker中开发是否合理?

我是Docker的新手,想知道是否有可能(和一个好主意)在Docker容器中开发。 我的意思是创build一个容器,执行bash,安装和configuration我需要的一切,并开始在容器内开发。

容器成为我的主机(对于CLI相关的作品)。 当我在旅途中(或者当我购买一台新机器的时候),我可以推动容器,把它放在笔记本电脑上。

这种问题必须保持和同步你的dotfile。

我还没有开始使用docker工具,所以它是现实的或避免(空间磁盘问题和/或拉/推时间问题)。

是。 这是一个好主意,正确的设置。 您将像运行虚拟机一样运行代码。

用于创build构build系统的Dockerfileconfiguration不会被打磨,并且不会扩展shellvariables,因此预安装应用程序可能有点繁琐。 另一方面,在构build自己的映像以创build新用户和工作环境之后,不需要再次构build它,此外,可以使用run命令的-v参数装入自己的文件系统,以便可以拥有您将在主机和容器机器中都需要的文件。 它是多才多艺的。

> sudo docker run -t -i -v /home/user_name/Workspace/project:/home/user_name/Workspace/myproject <container-ID> 

我会扮演逆向者,说这是一个坏主意。 我已经尝试过让容器“长时间运行”并修改了容器,但是后来又意外丢失或删除了容器。

在我看来,容器并不是长时间运行的虚拟机。 他们只是想成为一个形象的例子。 启动它,停止它,杀死它,再次启动它。

正如亚历克斯所说,这当然是可能的,但在我看来是违背了“docker”的方式。

我宁愿使用VirtualBox和Vagrant来创build虚拟机来开发。

用于开发的Docker容器可以非常方便。 根据您的堆栈和首选IDE,您可能希望将编辑部分保留在主机之外,并根据Alex的build议将主机上的源代码安装到容器中。 如果这样做,请注意macos x与boot2docker之间的潜在性能问题。

我不希望在工作stream程中推动图像在开发环境之间进行同步。 恕我直言,将Dockerfiles与代码一起保存并通过SCM进行同步意味着更直接的方向。 我还携带支持Makefiles来构build图像/运行容器(S)相同的地方。