Docker 安装Redis 无法使用配置文件设置密码问题
背景
最近开发需要使用各种组件,如果都到开发机上安装,会占用电脑资源较多。所以使用docker容器来安装这些组件。例如 redis 、mongodb、mysql、rabitmq、elasticsearch 等等。
遇到的问题
用edis官方镜像启动容器后,发现没有加载配置文件。
解决方案
1.redis镜像拉下来后,通过docker run 命令创建并启动容器。不能使用docker desktop 工具运行容器,那个工具貌似只能设置端口及容器名字,没找到 挂载配置文件启动redis的设置。
2.通过docker desktop 或者 docker 命令 docker pull redis:latest 最新的redis 镜像。
3. 通过 下面的命令 创建并运行容器
docker run -p 6379:6379 --name myredis -d redis redis-server /etc/redis/redis.conf --appendonly yes
-p 映射redis 使用6379端口
--name 指定容器名字 为 myredis
-d 指定使用的镜像名字 ,是用redis 镜像创建容器,后面紧接的参数 redis-server 是容器启动后,执行redis-server 命令 并挂载 etc/redis/redis.conf 文件 。
-- appendonly yes 表示启动redis时打开redis 持久化配置。
这让创建容器,容器会启动失败。
通过docker ps 查看当前的容器,找到刚创建的容器,通过 docker logs 容器id 查看容器的启动日志,或者通过docker desktop 工具点击对应的容器,然后点击Logs选项卡,查看日志。
日志里会提示 /etc/redis/redis.conf 文件不存在。
此时我们可以通过 docker exec -it 【容器id】/bin/bash 命令进入容器,容器内也是一个liunx 系统,可以通过liunx命令创建对应的目录和配置文件,并通过vi命令编辑文件,设置密码。
或者通过Docker DeskTop 工具 进入容器后点击Files 就可以像在windows 下一样,以文件夹的方式浏览容器内的文件,
可以找到对应的目录,将本地的文件上传上去(注意只能上传文件夹,可以到本地建个redis 目录,里面包含redis.conf 文件配置,然后将目录上传到对应的文件夹)。见图:

配置里编辑好要设置的密码。文件上传到容器内后,点击右上角的restart 重启容器,容器内的redis就会自动加载配置文件。里面就指定了密码。注意配置里的bind 127.0.0.1 配置需要注释掉,
不然外部无法连接容器内的redis。
重启容器后,可以通过 进入容器内的redis
docker exec -it [容器id] redis-cli
或者
docker exec -it [容器id] /bin/bash
redis-cli -h 127.0.0.1 -p 6379 -a 123456
进入容器后,通过 config get requirepass 命令获取当前配置的账号密码,如果指定密码登录了,会返回当前的密码。
如果通过第一个命令直接进入,会提提示需要验证密码,此时可以通过auth 【密码】 命令验证redis的密码。
也可以重新修改密码 config set requirepass [新密码] 修改后保存回 配置文件 config rewrite
到这里 docker redis 通过配置启动,修改密码等操作已完成。
之前在网上找了很多资料,大部分都是通过 docker run 命令 加 -v 参数 挂载 主机 目录及配置文件,这种方式我没成功~不知道问题出在哪里,最后启动的redis 都没有应用上配置文件,
且查看容器内映射的配置文件,redis.conf 它显示的是目录,不是文件...
如果通过Docker Desktop 工具的镜像管理直接启动容器,不能指定的容器内redis启动时挂载 redis.conf 配置。Environment variables 参数设置也不起作用。 docker desktop 是方便,但是需要额外设置一些参数,还是需要通过
docker run 命令来创建和启动容器。

Docker 安装Redis 无法使用配置文件设置密码问题的更多相关文章
- docker安装redis 指定配置文件且设置了密码
---------首先,所有docker的命令,都可以用 docker help 来查询,这个挺好的,我反正记不住辣么多命令呀. 1.直接pull 官方镜像吧.没啥说的,这样方便省事.如果你非要用 ...
- Docker安装Redis并使用Another Redis Desktop Manager连接
Redis简单介绍 Redis全称是Remote DIctionary Service,即远程字典服务.Redis 是一个使用C语言编写的.开源的(遵守 BSD 协议).高性能的.支持网络.可基于内存 ...
- Docker安装Redis及Warning解决方法
虚拟机环境:VirtualBox 操作系统:CentOS 7 宿主机: Microsoft Windows 10 家庭中文版 Docker简介 Docker是一个轻量级容器技术.Docker直接运行在 ...
- docker 安装redis 并配置外网可以访问 - flymoringbird的博客 - CSDN博客
原文:docker 安装redis 并配置外网可以访问 - flymoringbird的博客 - CSDN博客 端口映射,data目录映射,配置文件映射(在当前目录下进行启动). docker run ...
- Docker 安装 Redis 需要注意的地方
Docker 安装 Redis 需要注意的地方 拉取镜像 docker pull redis 可以使用redis:xxx xxx为版本号,不写默认是latest 启动容器 无配置文件无密码: dock ...
- docker 安装redis , 让宿主机可以访问
1, docker 拉去最新版本的redis docker pull redis #后面可以带上tag号, 默认拉取最新版本 2, docker安装redis container 安装之前去定义我们的 ...
- docker 安装redis 并配置外网可以访问
1, docker 拉去最新版本的redis docker pull redis #后面可以带上tag号, 默认拉取最新版本 2, docker安装redis container 安装之前去定义我们的 ...
- mac系统Docker安装Redis教程
在之前介绍过mac系统安装docker,以及docker安装mysql的傻瓜式教程,如果有需要参考的朋友,可以看下面文章: MacOS安装Docker傻瓜式教程 mac系统下docker安装配置mys ...
- docker安装redis主从以及哨兵
docker安装redis主从以及哨兵 本文使用docker在四台机器上部署一主二从三哨兵的Redis主从结构. 服务器配置 192.168.102.128 主节点 centos7.5 192.168 ...
- linux下用docker安装redis
docker安装redis方法: 1.用命令来查看可用版本: docker search redis 2.拉取官方的最新版本的镜像:docker pull redis:latest 3.查看镜像:do ...
随机推荐
- AccessToken、for_user、get_token
在Django REST framework的SimpleJWT库中,AccessToken是一个类,用于表示一个JSON Web Token (JWT)中的访问令牌部分.访问令牌是一种常见的身份验证 ...
- Python爬取微信小程序实战(通用)
背景介绍 最近遇到一个需求,大致就是要获取某个小程序上的数据.心想小程序本质上就是移动端加壳的浏览器,所以想到用Python去获取数据.在网上学习了一下如何实现后,记录一下我的实现过程以及所踩过的小坑 ...
- Go 语言 map 是并发安全的吗?
原文链接: Go 语言 map 是并发安全的吗? Go 语言中的 map 是一个非常常用的数据结构,它允许我们快速地存储和检索键值对.然而,在并发场景下使用 map 时,还是有一些问题需要注意的. 本 ...
- Redis系列13:分布式锁实现
Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5: ...
- 推送服务接入指导(HarmonyOS篇)
消息推送作为App运营日常使用的用户促活和召回手段,是与用户建立持续互动和连接的良好方式.推送服务(Push Kit)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道,本文旨在介绍Harmo ...
- 6 种方式读取 Springboot 的配置,老鸟都这么玩(原理+实战)
大家好,我是小富- 从配置文件中获取属性应该是SpringBoot开发中最为常用的功能之一,但就是这么常用的功能,仍然有很多开发者在这个方面踩坑. 我整理了几种获取配置属性的方式,目的不仅是要让大家学 ...
- .NET7 for LoongArch64(国产龙芯)
目前龙芯通过自己的指令集LA64支持了.Net7.0.1版本,一同被支持的有Ruby,Nodejs,Java,Electron,Python等.原文:在此处 龙芯.Net7 sdk下载地址: http ...
- 1. SpringMVC 简介
1. 什么是 MVC MVC是一种软件架构的思想,将软件按照模型.视图.控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实 ...
- 如何扩展及优化CI/CD流水线?
如今应用程序的开发通常由多个开发人员组成的团队完成.每个人或团队在项目中发挥自己的作用,然后我们发现在项目的末尾总是有几段代码需要编译,根据每个人的工作方法,管理这种集成可能会浪费很多时间.持续集成和 ...
- 利用代码生成工具快速生成基于SqlSugar框架的Winform界面项目
我们接触一个新事物的时候,如果一个事物能够给我们带来非常直观的感官认识,那么我们就很容易接受,反之可能需要很长时间的潜移默化的了解认识才能接受.万物化繁为简,透过本质看表象,往往也是一个认知迭代深入的 ...