Docker命名为卷对比DOC(数据专用容器)
直到最近版本的Docker(v1.10),我们都认为我们可以使用DOC: data-only容器 。 所以我会创build这样的DOC(例如busybox),并使用--volumes-from
将其链接到我的容器。 你仍然可以在Docker文档中看到这个。
随着docker的新版本,据说,而不是DOC,我们应该使用named volumes
。 这里是一个docker-compose.yml
的例子:
version: '2' services: elasticsearch: image: elasticsearch:2.2.0 command: elasticsearch -Des.network.host=0.0.0.0 ports: - "9201:9200" volumes: - "es-data:/usr/share/elasticsearch/data" volumes: es-data:
这里我们创build并使用了命名卷es-data
。
这个新function还没有太多的文档。 我问:
- 我们可以用命名容器replaceDOC吗? 音量持续多久? 如果我删除使用它的容器呢?
- 我们现在可以如何备份? 以前,我可以
docker run --rm --volumes-from es-data ...
然后tar
它。
我们可以用命名容器replaceDOC吗?
在很多情况下,是的,命名容器将是一个更好的select。
音量持续多久? 如果我删除使用它的容器呢?
如果您移除容器,音量将仍然在那里。 删除卷的唯一方法是使用docker-compose down -v
或docker volume rm <volume name>
。
我们现在可以如何备份? 以前,我可以运行docker run –rm –volumes -es-data …然后tar它。
可以使用--volume=<volume name>
代替--volumes-from
。
请注意,由docker-compose
创build的卷始终以项目名称作为前缀,因此如果将其与<project_name>_es-data
命令一起使用,则全名实际上是<project_name>_es-data
。