Docker Compose为何会额外创建匿名卷?
问题解答
这个匿名卷是Redis官方镜像自带的默认数据卷,用于存储Redis的持久化数据。
原因是:Redis官方提供的redis:latest镜像的Dockerfile中,通过VOLUME /data指令声明了一个数据卷目录——这是Redis默认存放RDB、AOF等持久化文件的位置。当你启动容器时,若未手动为/data目录指定挂载的卷(命名卷或绑定挂载均可),Docker会自动创建一个匿名卷挂载到该目录,避免容器被删除后Redis的持久化数据丢失。
你的docker-compose.yml仅将testVol挂载到了/app/myfolder,并未处理Redis默认的/data目录,因此Docker自动生成了这个匿名卷来兜底。
若不想出现这个匿名卷,你可以在compose配置中为/data目录也指定挂载,示例如下:
version: "3" services: webapp: image: 'redis:latest' volumes: - testVol:/app/myfolder - testRedisData:/data # 可使用自定义命名卷,也可绑定本地目录 volumes: testVol: external: true testRedisData: # 若为内部创建的卷无需添加external: true,也可使用已创建的外部卷
内容的提问来源于stack exchange,提问作者DumbCoder
相关产品推荐
相关产品推荐

