文章目录
- 1、问题描述
- 2、分析
- 3、解决方案
1、问题描述
今天让docker挂载外部的redis.conf配置文件启动redis,但是启动之后容器立马退出。
docker run -p 6379:6379 -d -v /root/redisconf:/usr/local/etc/redis --name myredis redis:6.2.3 redis-server /usr/local/etc/redis/redis.conf
参数说明:
-p 6379:6379 指定端口映射
-d 以守护进程的方式启动容器
-v 指定数据卷绑定
–name myredis 指定容器名称
/root/redisconf 宿主机的redis.conf配置文件所在的文件夹
/usr/local/etc/redis
redis-server /usr/local/etc/redis/redis.conf 指定配置文件启动redis-server进程
-v /root/redisconf:/usr/local/etc/redis 把宿主机配置好的redis.conf映射到容器内的/usr/local/etc/redis目录中
2、分析
我们查询redis容器的日志
docker logs 8acc8c2c918d1834b7b3bd928e498a209b10bbf9efe39d4c89024c9e33d8552c
发现,没有对宿主机redis.conf文件的操作权限
3、解决方案
在容器启动的时候加上--privileged=true
参数即可
docker run --privileged=true -p 6379:6379 -d -v /root/redisconf:/usr/local/etc/redis --name myredis redis:6.2.3 redis-server /usr/local/etc/redis/redis.conf
可以看到,容器成功启动。
ps:几乎每天都会遇到一个很难解决的Bug,再这样下去要掉头发了