Docker 远程主机能否使其文件与本地计算机保持同步?需要自动重新加载的 Django 项目

Can a Docker remote host keep its files synced with your local machine? Django project that needs auto-reloading

我正在考虑购买一台新的 Macbook M1。 Docker 桌面显然无法使用他们的 Rosetta 2 引擎,我所有的开发工作都依赖于 Docker 桌面和一个在文件更改时自动重新加载的本地开发环境。

我对 Docker 远程主机的处理不多,但我发现这可能是一个权宜之计,直到 Docker 重写其引擎。 Google 让我失望了...你能让本地计算机上的文件与 Docker 远程主机保持同步吗?

不,Docker 不会这样做。相反,Docker 将您的应用程序代码打包到 image 中;该图像可以传输到 存储库 (Docker 集线器是最突出的选项),然后 运行 在远程系统上,而无需应用程序代码或直接安装在那里的解释器。除了图像系统之外,Docker 无法直接将文件从一个系统传输或挂载到另一个系统(您可以创建一个支持 NFS 的命名卷,但您需要 运行 NFS服务器自己)。

对于日常开发,使用您的语言的本地隔离系统通常比使用 Docker 尝试模拟本地开发环境效果更好。对于 Python,考虑使用 Pipfile 之类的工具来创建虚拟环境。 Python 与平台无关,因此您应该不会注意到使用 Apple 芯片与 Intel 芯片有任何问题。

甚至不要考虑使用 Docker 遥控器 API。如果你没有完美地配置它,使用它来根主机是微不足道的(并且在野外有很多这样的例子)。即使已配置,您也无法使用它从本地系统挂载文件(docker run -v 绑定挂载选项始终相对于 Docker 主机进行解释 运行s ).如果出于任何原因需要直接在远程主机上工作,请使用普通的 ssh 连接。