直到最新版本的Docker(v1.10),我们才认为我们可以使用DOC:仅数据容器。所以我会创建这样的DOC(基于例如busybox)并使用--volumes-from
将它链接到我的容器。您仍然可以在Docker documentation中阅读此内容。
对于新版本的docker,我们应该使用named volumes
代替DOC。以下是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:
在这里,我们创建并使用命名卷es-data
。
关于这项新功能的文档仍然不多。我在问:
docker run --rm --volumes-from es-data ...
然后tar
。答案 0 :(得分:17)
我们可以用命名容器替换DOC吗?
在许多情况下,是的,命名容器将是更好的选择。
持续存在多长时间?如果我删除正在使用它的容器怎么办?
如果您卸下容器,卷仍然会在那里。删除卷的唯一方法是使用docker-compose down -v
或docker volume rm <volume name>
。
我们怎样才能例如立即备份?以前,我可以从es-data中运行--rm --volumes - 然后tar它。
您可以使用--volumes-from
。
--volume=<volume name>
请注意,docker-compose
创建的卷始终以项目名称为前缀,因此如果您将其与docker
命令一起使用,则全名实际为<project_name>_es-data
。