Docker Redis 使用 -v 以持久存储启动时出错(chown:更改“.”的所有权:权限被拒绝)

Docker Redis start with persistent storage using -v gives error (chown: changing ownership of '.': Permission denied)

我正在为 docker-redis setup using default redis.conf 使用以下系统 version/spec。

Redhat version: 7.6 (Red Hat Enterprise Linux Server)
Redis Version: 5.0.4
Docker Version:  1.13.1, build b2f74b2/1.13.1

当我 运行 执行命令时,它工作得很好。

sudo docker run -d -v $PWD/redis.conf:/usr/local/etc/redis/redis.conf --name redis-persistance --net tyk -p 7070:6379 redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes

我需要获取redis数据(在容器里面的/data)到宿主目录(/usr/local/etc/redis/data) (-v $PWD/data:/data)。因此,当我 运行 执行命令时,出现以下错误。 注意 $PWD = /usr/local/etc/redis/

sudo docker run -d -v $PWD/redis.conf:/usr/local/etc/redis/redis.conf -v $PWD/data:/data --name redis-persistance --net tyk -p 7070:6379 redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes

docker 日志中的错误:

journal: chown: changing ownership of '.': Permission denied
level=warning msg="05ce842f052e28566aed0e2eab32281138462cead771033790266ae145fce116 cleanup: failed to unmount secrets: invalid argument"

我还尝试将主机中 data 文件夹的所有权也更改为以下。 chown redis:redis 数据

drwxrwxrwx. 2 redis redis     6 May  3 07:11 data

有人可以帮我解决这个问题吗?谢谢。

首先创建一个卷:

docker volume create redis_data

检查卷是否已创建(注意挂载点):

docker volume inspect redis_data

然后使用这个卷来启动你的容器:

sudo docker run -d -v $PWD/redis.conf:/usr/local/etc/redis/redis.conf -v redis_data:/data --name redis-persistance --net tyk -p 7070:6379 redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes

然后可以查看"Mountpoint"的内容应该是redis数据