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 -vdocker 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