解决docker pull redis 镜像后,没有对应配置文件的问题

当从Docker Hub拉取Redis镜像后,发现镜像内没有配置文件。尝试通过挂载宿主机目录并指定启动命令来运行容器,但并未自动生成配置文件。解决方案是确定Redis版本为5.0.8,然后在宿主机上通过yum安装相同版本的Redis,手动复制redis.conf配置文件到挂载目录,从而成功启动Redis服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

拉取的redis镜像是没有配置文件的。按照网上的解决方式启动,指定启动目录:

docker run -p 6379:9911 --name rd1 -v /data/redis/rd1/conf/redis.conf:/etc/redis.conf -v /data/redis/rd1/data:/data -d redis redis-server /etc/redis.conf --appendonly yes

原以为在宿主机上的/data/redis/rd1/conf/文件夹下会自动生成redis.conf配置文件,可是结果是生成了redis.conf。

看来要自己复制一份redis.conf文件。

先查看下docker pull对应的redis版本是5.0.8

[root@128 ~]# docker exec -it rd1 /bin/bash
root@58f8d962581b:/data# redis-cli --version
redis-cli 5.0.8

在宿主机中通过yum安装redis 5.0.8

[root@128 yum_redis_5.0.8]# wget http://download.redis.io/releases/redis-5.0.8.tar.gz
--2020-03-24 19:21:54--  http://download.redis.io/releases/redis-5.0.8.tar.gz
Resolving download.redis.io (download.redis.io)... 109.74.203.151
Connecting to download.redis.io (download.redis.io)|109.74.203.151|:80... connected.
HTTP request sent, awaiting response... 302 Found
Locat
### 如何在 Docker 中安装 Redis 并挂载配置文件 #### 创建容器前的准备工作 为了确保 Redis 的正常运行,在启动容器之前需要完成一些必要的准备操作。这包括拉取官方镜像、创建宿主机上的挂载目录以及准备好 `redis.conf` 文件。 1. **拉取 Redis 镜像** 使用以下命令来获取指定版本的 Redis 官方镜像: ```bash docker pull redis:6.0.8 ``` 此处选择了 Redis 版本 6.0.8,可以根据实际需求替换为其他稳定版号[^1]。 2. **创建挂载目录** 在宿主机上建立两个主要目录分别用于存储 Redis配置文件和数据文件。这样可以方便后续维护与升级工作。 ```bash mkdir -p /docker/redis/conf/ mkdir -p /docker/redis/data/ ``` 上述路径 `/docker/redis/conf/` 和 `/docker/redis/data/` 可依据个人习惯更改至任意位置[^3]。 3. **复制或编辑配置文件** 如果已有现成的 `redis.conf` 文件,则可以直接将其放置到刚才创建好的配置文件夹下;如果没有的话也可以手动新建一个空白文档再逐步完善内部参数设定。 假设我们采用后者的方式来进行演示说明: ```bash touch /docker/redis/conf/redis.conf vi /docker/redis/conf/redis.conf ``` 接下来向该新生成的文本里写入基础性的初始化语句如下所示(仅为示范片段),更多高级选项可查阅官方手册或者参考资料链接进一步补充完整内容[^4]: ```conf bind 0.0.0.0 protected-mode yes port 6379 timeout 0 loglevel notice logfile "" databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error no rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir ./ slave-serve-stale-data yes slave-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 requirepass yourpasswordhere maxclients 10000 maxmemory-policy volatile-lru appendonly no ``` #### 启动带有自定义配置的 Redis 实例 当一切就绪之后就可以利用 Docker run 指令正式启动服务端口监听进程啦! 以下是完整的执行脚本样例供参考学习之用: ```bash docker run --name my_redis \ -v /docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \ -v /docker/redis/data/:/data \ -d \ -p 6379:6379 \ redis:6.0.8 \ redis-server /usr/local/etc/redis/redis.conf ``` 这里需要注意几个关键点: - `-v`: 表示卷映射关系,前者代表本地物理磁盘地址而后者则是目标虚拟机内的相对应逻辑路径; - `-d`: 背景模式运行,默认不会占用当前终端会话资源; - `-p`: 将外部访问请求转发给内部实例处理的具体端口号绑定规则; - 最后的部分指定了要加载哪个特定版本的服务程序及其关联参数列表[^2]. 至此整个流程便顺利完成啦!如果想要验证成果是否成功达成预期效果可以通过 telnet 或者 netstat 工具简单测试一下连接状况即可得到结论哦~ --- ###
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值