如何从docker集装箱rsync同步到我的主机

我目前的开发环境允许每当更改一个文件(即nodemon / webpack )时自动重新加载代码。 不过,我正在build立一个kubernetesminikube )环境,以便我可以立即快速开启3-4个相关的服务。

一切工作正常,但目前不做自动代码重新加载。 我尝试装入卷,但与dockervirtualbox处理文件的方式存在一些冲突,导致冲突导致主机上的文件更改未反映在docker容器中 。 (这不是我看到的与这个问题有关的第一个链接,这是我在第一天用googlesearch的第一个链接)…

不pipe怎么说,长话短说,脂肪酶在开发中遇到麻烦。 我发现这个问题在整个interweb中都很less见解决scheme。 我会说我迄今为止发现的最好的解决scheme是这个人使用主机中的tar来同步文件夹。

不过,我想从容器的解决scheme。 原因是我想从容器中运行脚本,以便开发人员不必在每次开始开发特定的回购站时在主机上运行一些脚本。

为了做到这一点,但是我需要运行rsync从容器到主机。 而且我很难找出如何为其编写语法。

假设我的应用程序存在于我的容器和主机中,分别为:

 /workspace/app # location in container /Users/terence/workspace/app # location in host computer 

我如何从容器到主机的rsync? 我试过使用172.17.0.17127.0.0.1无济于事。 不完全确定是否有办法做到这一点?

我试过的例子:

 rsync -av 172.17.0.17:Users/terence/workspace/app /workspace/app rsync -av 127.0.0.1:Users/terence/workspace/app /workspace/app 

如果你从主机(不在容器内)运行rsync,你可以使用docker cp来代替:

例如docker cp containerName:/workspace/app Users/terence/workspace/app

你能否澄清一下:
1.您是从主机还是从容器内运行rsync?
如果它来自容器内部,它将取决于容器所连接的networking(即,桥接或主机)以及安装的卷(即启动容器时是否使用了-v标志? )

更新 :为了使rsync在容器内工作,你需要将主机的目录公开给容器。

当你想到一个解决scheme时,记住这一点: 主机目录作为数据卷

注意 :主机目录本质上取决于主机。 因为这个原因,你不能从Dockerfile挂载一个主机目录,VOLUME指令不支持传递一个host-dir,因为内置映像应该是可移植的。 主机目录在所有可能的主机上都不可用。