没有卷的docker-compose服务

问题描述 投票:0回答:1

我在docker-compose.yml文件中定义了一个redis服务:

redis:
  container_name: redis
  image: redis
  ports:
    - "6379:6379"

如您所见,此处没有定义任何卷。在docker run / docker-compose run的调用之间,redis数据库是否会保留?当我将docker runredis-cli结合使用时,我可以在数据库中看到一些数据,因此我很想知道它的来源。

docker redis containers docker-volume
1个回答
0
投票

这里可能发生几件事。

如果重复运行docker-compose up -d,将努力使现有容器保持活动状态。如果您处于普通的开发周期中并且反复按docker-compose stop app; docker-compose up --build -d,则这只会重新启动已停止的容器,因此按此顺序,数据库容器将永远不会停止或删除。您将拥有相同的数据库容器。

发生的第二件事是Redis Dockerfile声明VOLUME /data。如果您未使用VOLUME /data声明为该目录指定其他任何内容,则Docker将为该目录创建一个anonymous volume。 Docker Compose将跟踪这些事件,并且匿名卷将保持与特定服务的关联,直到您显式volumes:或使用docker-compose down -v重新启动该服务。

© www.soinside.com 2019 - 2024. All rights reserved.