在使用 Docker 部署 Redis 数据库时,为了实现数据持久化,需要将容器内的数据目录挂载到宿主机的目录中。以下是每个选项的分析:
选项分析
docker run -d --name redis -v /data/redis:/data -p 6379:6379 redis
宿主机的 /data/redis 目录被挂载到容器的 /data 目录。
Redis 默认将数据存储在 /data 目录下,因此这个命令可以实现数据持久化。
docker run -d --name redis -v /mnt/data/redis:/var/lib/redis -p 6379:6379 redis
宿主机的 /mnt/data/redis 目录被挂载到容器的 /var/lib/redis 目录。
Redis 数据通常存储在 /data 目录,而不是 /var/lib/redis,因此这个命令可能无法正确持久化数据。
docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis
宿主机的 /mnt/data/redis 目录被挂载到容器的 /data 目录。
Redis 默认将数据存储在 /data 目录下,因此这个命令可以实现数据持久化。
docker run -d --name redis -v /data/redis:/mnt/data/redis -p 6379:6379 redis
宿主机的 /data/redis 目录被挂载到容器的 /mnt/data/redis 目录。
Redis 数据通常存储在 /data 目录,而不是 /mnt/data/redis,因此这个命令可能无法正确持久化数据。
正确答案
根据上述分析,正确的命令是:
docker run -d --name redis -v /data/redis:/data -p 6379:6379 redis
docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis
这两个命令都将 Redis 的数据目录正确地挂载到了宿主机的目录中,从而实现了数据持久化。
推荐选项
如果需要选择一个更通用的路径(例如 /mnt/data/redis),可以优先选择:
docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis
这个命令不仅实现了数据持久化,还使用了更常见的挂载路径 /mnt/data/redis。