Docker安装之Redis

文章详细介绍了如何在Docker环境下获取Redis6.2镜像,启动并配置Redis容器,包括取消本地访问限制、启用守护进程模式、设置持久化和密码保护。同时,文章提到了在宿主机上复制和修改redis.conf文件,以及解决启动日志和SpringBoot连接问题的方法。

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

sudo docker pull redis:6.2

#修改启动默认配置(从上至下依次):
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
daemonize no
appendonly yes #redis持久化(可选)
requirepass '' #安全访问密码

获取指定版本的Redis镜像

sudo docker pull redis:6.2

或者在dockerhub上,获取官方最新版本

优先启动容器,将容器内的redis.conf文件,复制到宿主机上,便于后期进行映射和修改配置

#先启动redis容器
docker run -p 6371:6379 --name redis 镜像id
 redis-server /etc/redis/redis.conf

#查询是否启动成功
docker ps

#在宿主机新建redis.conf
mkdir -p /data/myredis
cd /data/myredis
touch redis.conf

拷贝容器内的redis.conf覆盖本地空的redis配置文件

#复制redis.conf配置文件
docker cp 容器id:/etc/redis/redis.conf /data/myredis/redis.conf

关闭删除容器

docker stop 容器id
docker rm 容器id

修改本地redis.conf文件中的常用配置

#修改启动默认配置(从上至下依次):
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
daemonize no
appendonly yes #redis持久化(可选)
requirepass '' #安全访问密码

修改配置文件后,再次启动容器,并查看启动日志


docker run --restart=always --log-opt max-size=100m --log-opt max-file=2
 -p 6371:6379 --name redis 
-v /data/docker/redis/redis.conf:/etc/redis/redis.conf 
-v /data/docker/redis/data:/data -d 镜像id redis-server /etc/redis/redis.conf
 --appendonly yes

#以上命令输入后,会返回容器id,使用此容器id查看容器的启动日志
docker logs -f 容器id

遇到的坑

  • 早期的 Docker Redis 在容器中的配置文件,在一个专门的、特定的目录下,但现在没有了。从 5.x 版本开始 Docker Redis 改变了思路:你可以将配置文件放在任意位置,然后在 Redis 启动时告诉 Redis 从哪里加载配置文件即可。因此你想要配置容器内的 Redis,那么你需要在宿主机中准备好一个配置文件,然后映射到容器中的任意位置,然后将这个「任意位置」告诉容器中的 Redis
  • 如果docker -d启动redis容器,redis.conf不要配置守护进程启动,会造成无法正常启动redis,并且没有启动日志,因为docker启动参数跟redis.conf配置冲突了。
  • 如果配置了Redis,客户端可连,但是Spring Boot不可以,就将配置文件中的password改完auth
### 如何在 Docker安装 Redis 并设置 Redis 自启动 #### 创建挂载目录 为了持久化存储和管理配置文件,在主机上创建一个用于挂载的目录结构。执行以下命令来完成此操作: ```bash mkdir -p /data/redis/conf ``` #### 下载并准备 `redis.conf` 文件 通过官方资源下载最新的 `redis.conf` 配置文件到指定路径下,并赋予其适当权限以便后续使用。 ```bash wget http://download.redis.io/redis-stable/redis.conf -P /data/redis/conf/ chmod 777 /data/redis/conf/redis.conf ``` #### 修改配置文件中的必要参数 编辑 `/data/redis/conf/redis.conf` 文件,调整如下选项以满足需求: - **解除绑定地址限制** 注释掉默认仅允许本地访问的部分,使得外部客户端能够正常连接至该实例。 ```conf # bind 127.0.0.1 ::1 ``` - **关闭保护模式** 将受保护模式设为否,从而支持远程接入尝试。 ```conf protected-mode no ``` - **设定访问密码(可选)** 如果希望增强安全性,可以定义一个简单的验证字符串作为登录凭证。 ```conf requirepass your_password_here ``` 以上更改均需依据实际业务场景灵活决定。 #### 启动带有自重启策略的服务容器 利用之前定制好的环境变量与映射关系构建稳定运行的目标镜像版本号;同时加入自动恢复机制确保意外中断后能迅速恢复正常工作状态。 ```bash docker run \ --name redis \ --restart=always \ -p 6379:6379 \ -v /data/redis/conf/redis.conf:/etc/redis/redis.conf \ -d redis redis-server /etc/redis/redis.conf ``` 此处的关键在于设置了 `--restart=always` 参数,这表示无论任何情况下都会让这个名为 "redis" 的容器保持活跃运转态势[^1]。 另外还有一种基于 Compose 工具实现相同效果的方式可供参考选用: ```yaml version: '3.8' services: redis: image: redis:latest container_name: base-redis restart: always volumes: - ./data:/data - ./redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"] ports: - "6379:6379" ``` 只需保存上述内容到当前目录下的 `docker-compose.yml` 文档里,接着调用对应指令即可快速部署完毕整个体系架构。 ```bash docker-compose up -d ``` 综上所述,无论是单独运用 CLI 命令还是借助声明式 YAML 描述语言都能达成预期目标——即成功搭建起具备自我修复能力的 Redis 数据库服务端口监听于公网之上供外界自由交互交流之便[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芦蒿炒香干

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值