我正在使用以下系统版本/规范来使用默认的 redis.conf 设置 docker-redis。
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数据。
对我有用的是添加一个安全上下文,例如:
spec:
securityContext:
runAsUser: 999
runAsGroup: 999
fsGroup: 999
然后将挂载点的所有权更改为 999:
chown -R 999:999 your_redis_mountpoint