在最新版本的Docker(v1.10)之前,我们认为我们可以使用DOC: 仅数据容器 。因此,我将创建此类DOC(基于例如busybox)并将--volumes- from其链接到我的容器。您仍然可以在Docker文档中阅读有关此内容的信息。
--volumes- from
对于新版本的docker,据说我们应该使用而不是DOC named volumes。这是一个示例docker-compose.yml:
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:
在这里,我们创建并使用了命名卷es-data。
es-data
关于此新功能的文档仍然很少。我在问:
docker run --rm --volumes-from es-data ...
tar
我们可以用命名容器替换DOC吗?
是的,在许多情况下,命名容器将是更好的选择。
持续多长时间?如果我卸下正在使用的容器怎么办?
如果卸下容器,则该卷仍将存在。删除卷的唯一方法是使用docker-compose down -v或docker volume rm <volume name>。
docker-compose down -v
docker volume rm <volume name>
我们现在该如何备份?以前,我可以docker从es-data运行–rm –volumes -…然后将其压缩。
相反--volumes-from,您可以使用--volume=<volume name>。
--volumes-from
--volume=<volume name>
请注意,由创建的卷docker- compose始终以项目名称作为前缀,因此,如果将其与docker命令一起使用,则全名实际上是<project_name>_es-data。
docker- compose
docker
<project_name>_es-data