当前位置: 首页 > news >正文

ubuntu22上安装redis6

以下是 Ubuntu 22.04 系统通过 Docker 26 安装 Redis 6.2.6 的完整步骤,综合多个可信指南优化整理:

一、准备工作

  1. 创建持久化目录

    mkdir -p ~/redis6/data ~/redis6/conf touch ~/redis6/conf/redis.conf

    目录结构:
    ~/redis6/data - 数据存储目录
    ~/redis6/conf/redis.conf - 配置文件2

  2. 编辑配置文件

    nano ~/redis6/conf/redis.conf 

    添加核心配置:

    requirepass your_password # 设置访问密码 appendonly yes # 启用AOF持久化 bind 0.0.0.0 # 允许远程访问

在 nano 编辑器中退出并保存文件的操作步骤如下:


​1. 保存文件​

  1. 按下快捷键 ​Ctrl + O​(即按住 Control 键再按字母 O)。
  2. 底部会提示 ​File Name to Write: [当前文件名]​,直接按 ​Enter​ 确认保存原文件名。
    • 若需另存为新文件,输入新名称后再按 Enter

​2. 退出编辑器​

保存后,按下快捷键 ​Ctrl + X​ 即可退出 nano


​3. 快捷操作(一步保存并退出)​

如果文件已修改且未保存,直接按 ​Ctrl + X​:

  1. 若文件有改动,会提示:

    Save modified buffer? (Y/N)

  2. 输入 ​Y​(保存)→ 按 Enter 确认文件名 → 自动退出。
  3. 输入 ​N​(不保存)→ 直接退出。

 

二、拉取并启动容器

此时报错 sudo: docker: command not found
 出现sudo: docker: command not found错误表明系统未正确安装Docker或环境变量未配置。以下是完整解决方案:

一、安装Docker引擎
‌卸载旧版本(如有)‌
sudo apt-get remove docker docker-engine docker.io containerd runc
‌安装依赖工具‌
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
‌添加官方GPG密钥‌
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
‌设置稳定版仓库‌
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
‌安装Docker CE‌
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
二、验证安装
‌检查服务状态‌
sudo systemctl status docker
正常应显示active (running)状态6。

‌测试基础命令‌
docker --version
应输出类似 Docker version 24.0.2, build cb74dfc 的版本信息。

三、配置用户权限(避免sudo)
‌将当前用户加入docker组‌

bash
Copy Code
sudo usermod -aG docker $USER
newgrp docker  # 立即生效
‌验证非sudo执行‌

bash
Copy Code
docker ps
应能正常显示容器列表79。

四、重新执行Redis部署
docker run -d \
  --name redis6 \
  -p 6379:6379 \
  -v ~/redis6/data:/data \
  -v ~/redis6/conf/redis.conf:/etc/redis/redis.conf \
  redis:6.2.6 \
  redis-server /etc/redis/redis.conf

此时又报错:

ubuntu@VM-8-10-ubuntu:~$ docker run -d \
>   --name redis6 \
>   -p 6379:6379 \
>   -v ~/redis6/data:/data \
>   -v ~/redis6/conf/redis.conf:/etc/redis/redis.conf \
>   redis:6.2.6 \
>   redis-server /etc/redis/redis.conf
Unable to find image 'redis:6.2.6' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.

1. 确认错误信息

当你尝试运行Docker容器时,遇到了以下错误:

Unable to find image 'redis:6.2.6' locally docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).

这个错误表明Docker无法从Docker Hub(官方镜像仓库)拉取redis:6.2.6镜像,因为请求超时了。

2. 检查网络连接

首先,确保你的Ubuntu系统可以访问外部网络,特别是Docker Hub。你可以尝试ping Docker Hub的域名来检查网络连接:

ping registry-1.docker.io

如果这个命令失败,说明你的系统无法访问Docker Hub,可能是因为网络设置问题(如防火墙、代理服务器等)。

此时打算换源但是报了下面的错误

解决 docker pull --registry-mirror 未知标志错误

在Docker的较新版本中,--registry-mirror 标志可能已经被移除或不再支持,这取决于你使用的Docker版本。如果你在运行 docker pull --registry-mirror=https://mirror.ccs.tencentyun.com redis:6.2.6 命令时遇到了 “unknown flag: --registry-mirror” 错误,这意味着你的Docker版本不支持该标志。

解决方案:
步骤 1: 检查Docker版本

首先,检查你当前安装的Docker版本:

docker --version

确保你了解正在使用的Docker版本,因为不同版本的Docker可能有不同的配置选项和支持的功能。

步骤 2: 更新或修改Docker配置

由于 --registry-mirror 标志可能不再支持,你需要通过更新Docker配置来使用镜像加速器。

  1. 编辑Docker daemon配置文件‌:

    通常,Docker daemon的配置文件位于 /etc/docker/daemon.json。如果该文件不存在,你可以创建它。

    sudo nano /etc/docker/daemon.json

  2. 添加镜像加速器配置‌:

    在配置文件中添加腾讯云的镜像加速器地址。如果文件已经包含其他配置,确保新配置以逗号分隔并符合JSON格式。

    { "registry-mirrors": ["https://mirror.ccs.tencentyun.com"] }

  3. 保存并退出编辑器‌。

  4. 重启Docker服务‌:

    为了使配置生效,你需要重启Docker服务。

    sudo systemctl restart docker

步骤 3: 重新拉取Redis镜像

一旦Docker服务重启并且配置了镜像加速器,你就可以使用标准的 docker pull 命令来拉取Redis镜像了:

docker pull redis:6.2.6

这次,Docker应该会使用你配置的镜像加速器来加速镜像的下载。

此时再运行Redis容器
拉取成功后,使用原命令启动容器:

docker run -d \ --name redis6 \ -p 6379:6379 \ -v ~/redis6/data:/data \ -v ~/redis6/conf/redis.conf:/etc/redis/redis.conf \ redis:6.2.6 \ redis-server /etc/redis/redis.conf

此时有问题:

ubuntu@VM-8-10-ubuntu:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAME

没有应用启动

1. ‌检查容器状态‌
容器创建后立即退出,需先查看所有容器(包括已停止的):
docker ps -a
若状态为Exited,说明容器启动后立即崩溃。

2. ‌查看容器日志‌
通过日志定位崩溃原因:
docker logs 0a493d415ed9

此时问题是:

ubuntu@VM-8-10-ubuntu:~$ docker logs 0a493d415ed9

*** FATAL CONFIG FILE ERROR (Redis 6.2.6) ***
Reading the configuration file, at line 1
>>> 'requirepass your_password  # 设置访问密码'
wrong number of arguments
 

常见问题包括:Redis配置文件错误(如语法错误或路径问题)4
数据卷权限不足(/data目录不可写)3
端口冲突(6379被占用)

此时我的问题是配置文件出错

1. ‌错误分析

日志显示Redis配置文件第1行存在语法错误:

requirepass your_password # 设置访问密码

错误提示wrong number of arguments表明requirepass指令参数格式不正确47。

2. ‌修正配置文件

Redis的requirepass指令需严格遵循格式:

requirepass "your_password"

或(无空格密码时可省略引号):

requirepass yourpassword

需删除行内注释# 设置访问密码或将其移至独立行4。

3. ‌操作步骤
  1. 编辑配置文件‌:

    nano ~/redis6/conf/redis.conf

  2. 修正为合法格式‌:

    requirepass "your_password" # 设置访问密码(注释单独成行)

4. ‌重新启动容器

docker rm -f redis6 # 删除旧容器

docker run -d \ --name redis6 \ -p 6379:6379 \ -v ~/redis6/data:/data \ -v ~/redis6/conf/redis.conf:/etc/redis/redis.conf \ redis:6.2.6 \ redis-server /etc/redis/redis.conf

 

三、验证安装

  1. 检查容器状态

    sudo docker ps -f name=redis6

    输出应包含 Up 状态和端口映射信息

  2. 命令行测试

    sudo docker exec -it redis6 redis-cli

    AUTH your_password # 认证密码

  3. SET test_key "Hello Docker" GET test_key

    预期输出:"Hello Docker"27

  4. 持久化验证
    重启容器后数据应保留:

    sudo docker restart redis6 sudo docker exec -it redis6 redis-cli

        AUTH your_password

        GET test_key

⚙ 四、配置优化建议

  1. 内存限制‌(在 redis.conf 添加)

    maxmemory 2gb maxmemory-policy allkeys-lru

  2. 安全加固

    echo "rename-command FLUSHDB ''" >> ~/redis6/conf/redis.conf echo "rename-command CONFIG 'SECURE_CONFIG'" >> ~/redis6/conf/redis.conf sudo docker restart redis6

 注意事项

  1. 若需公网访问,需配置云服务器安全组开放 ‌6379 端口
  2. 生产环境建议:
    • 启用 TLS 加密传输
    • 使用 --restart=always 确保服务自启27

    sudo docker update --restart=always redis6

通过此方案部署的 Redis 服务具备:
数据持久化(AOF模式)
密码认证保护

配置文件外置管理
版本精确控制(6.2.6)

http://www.lqws.cn/news/549091.html

相关文章:

  • 【开发杂谈】Auto Caption:使用 Electron 和 Python 开发实时字幕显示软件
  • JAX study notes[7]
  • uniapp消息推送
  • Springboot中常用的注解(分层整理)
  • Redis主从复制原理
  • CI/CD的常规设置及核心原理
  • 【大数据】大数据产品基础篇
  • OpenCV图像添加水印
  • Java底层原理:深入理解JVM类加载机制与反射机制
  • nginx:配置反向代理后不生效
  • 智能实验室革命:Deepoc大模型驱动全自动化科研新生态
  • could not import google.golang.org/protobuf/proto
  • 前沿融合:机器学习如何重塑智能水泥基复合材料研发范式
  • 学习设计模式《十五》——模板方法模式
  • 多张图片生成PDF每张图片生成pdf的一页
  • Windows Server 2019 查询远程登录源 IP 地址(含 RDP 和网络登录)
  • 论云原生架构及应用
  • AcWing--数据结构(二)
  • clion配置旧的C项目为CMake项目工程
  • 生成树基础实验
  • 【C++】atoi和std::stoi
  • 本年度TOP5服装收银系统对比推荐
  • HTTPS hostname wrong: should be <xxx>错误解决
  • .小故事.
  • 基于DeepSeek搭建Dify智能助手国产化架构运行arm64
  • 【LeetCode】滑动窗口相关算法题
  • leetcode.2014 重复k次的最长子序列
  • Deformable Transformer 详解
  • 本地缓存Caffeine详解(含与Spring Cache集成)
  • Java 工程智能化升级:飞算科技重构软件开发的技术范式