如何在创建docker卷时指定源

时间:2017-11-20 19:11:49

标签: docker

根据docker文档,可以像这样创建一个卷吗?

docker volume create myvol

有没有办法指定源目录?

1 个答案:

答案 0 :(得分:2)

Docker卷有两种:bind mount和managed。绑定装载是在运行时完成的,它是您在谈论源目录时所考虑的问题。它看起来像这样:

docker run -v mydir:/app someimage

这会将主机上的mydir目录挂载到正在运行的容器中的/app

托管卷没有源目录,它仅存在于容器空间中。它通常用于在容器运行之间保存数据,因为容器是短暂的。

一个常见的用例是保留来自npm installpip install或其他一些软件包管理器的软件包以进行开发。每次运行我的容器时,我可能不想重新下载100个包。相反,我可以使用卷在运行之间保持它们:

docker run -v myvol:/app/node_modules someimage

下次我启动此容器并挂载此myvol时,myvol已经拥有上次/app/node_modules中所有已安装的软件包,因此npm将只是快速扫描它们以获取更新并移动沿。

还要考虑运行Dockerized数据库的托管卷。查看这篇SO帖子,它有一个非常好的答案:How to deal with persistent storage (e.g. databases) in docker