Docker:如何将主机文件夹与容器文件夹同步?
我正在使用由Node提供支持的网站。 所以我做了一个简单的Dockerfile,将我的站点的文件添加到容器的FS,安装Node并运行应用程序,当我运行容器,暴露私人端口80。
但是,如果我想更改该应用程序的文件,我已经重build了容器映像并重新运行它。 这需要几秒钟。
有没有一种简单的方法来进行某种“实时同步”,比如NFS,让我的主机系统的应用程序文件与正在运行的容器同步?
这样,我只需要重新启动它就可以应用更改,如果我使用了supervisor
,它将自动完成。
你可以使用卷来做到这一点。 你有两个select:
-
Dockerpipe理的卷:
docker run -v /src/path nodejsapp docker run -i -t -volumes-from <container id> bash
您在第二个容器中编辑的文件将更新第一个。
-
主机目录卷:
docker run -v `pwd`/host/src/path:/container/src/path nodejsapp
您在主机上所做的更改将更新容器。
如果您在OSX下,那么这种卷份额可能会变得非常慢,特别是在基于节点的应用程序(大量文件)下。 对于这个问题, http: //docker-sync.io可以帮助你在不使用卷共享的情况下获得像同步一样的卷共享,这通常会使代码目录的容器读写速度提高50-80倍,取决于你使用的docker-machine。