根据docker文档,可以像这样创建一个卷吗?
docker volume create myvol
有没有办法指定源目录?
答案 0 :(得分:2)
Docker卷有两种:bind mount和managed。绑定装载是在运行时完成的,它是您在谈论源目录时所考虑的问题。它看起来像这样:
docker run -v mydir:/app someimage
这会将主机上的mydir
目录挂载到正在运行的容器中的/app
。
托管卷没有源目录,它仅存在于容器空间中。它通常用于在容器运行之间保存数据,因为容器是短暂的。
一个常见的用例是保留来自npm install
,pip 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