重新启动码头容器的文件夹更改与首先-v命令的整个概念相反。如果你真的真的需要以你建议的方式重新启动容器,那么唯一的方法就是从码头主机。有一些工具可以用来监视主机文件夹,当插入或删除文件时,可以触发docker restart <container_name>
命令。这些工具是incron和inotify-tools。 Here是另一个有人问到与你相似的问题,并且使用我建议的工具之一推荐了答案。
现在,主机文件夹中的文件也不会在Docker容器中更改。它必须是在启动后,您在Docker容器中使用的程序不会更新/folder_name
文件夹的视图。是否有可能强制您在Docker容器中运行的程序进行刷新或更新? -v命令通过绑定安装工作,并且在docker中一直是一个稳定的功能。使用绑定安装,home/core/folder_name
文件夹IS(用于所有实际目的)与容器中的/folder_name
相同的文件夹。
运行
docker run -t -i -v /home/core/folder_name:/folder_name <container_name> /bin/sh
此命令使您在容器内交互的shell命令。在这个shell发出命令:
cd /folder_name; touch a_file
现在去在外壳或某些文件浏览器泊坞窗主机上的/ home /核心/文件夹名。文件a_file
将在那里。您可以删除主机上的该文件,然后返回运行在Docker容器中的shell并运行ls /folder_name
。文件a_file
不会在那里。
因此,您需要使用inotify或incron来随时在主机上更改文件时重新启动容器,或者了解如何使用您在Docker容器中运行的程序来更新其视图/folder_name
文件夹。
我明白了你的观点。现在另一个问题是在coreos中安装inotify。它没有python或gcc。 –
你应该可以使用coreos的包管理器来安装python和gcc。理论上,如果这是你要采取的方法,你应该写一个dockerfile来安装所有的软件。 [这里](https://docs.docker.com/engine/reference/builder/)是dockerfiles的文档。 – gpwclark
这个答案能帮助你理解你面临的问题吗? – gpwclark