【初识 Docker | 中级篇】 Docker 安装 Redis

news2024/11/15 20:43:59

文章目录

  • 前言
  • 一、安装 docker
    • 1、安装docker
    • 2、安装docker-compose
  • 二、redis 单机安装
    • 1.创建配置文件
      • 1.1.创建目录
      • 1.2.创建redis.conf
      • 1.3.创建docker-compose.yml
    • 2.启动redis容器
  • 总结


前言

可以按照以下步骤在 Docker 中安装 Redis

docker pull redis
拉取Redis镜像
docker run --name myredis -d p 6379:6379 redis
启动一个名为“myredis”的Redis容器,并在后台运行

这里没有配置容器卷映射,当容器被删除时数据无法恢复。


提示:以下是本篇文章正文内容,下面案例可供参考

一、安装 docker

1、安装docker

参考前文【初识 Docker | 基础篇】 Docker 安装

2、安装docker-compose

需要从github上下载docker-compose二进制文件安装

curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

出现问题:curl: (35) Encountered end of file 👉 解决:开放443端口即可

二、redis 单机安装

1.创建配置文件

1.1.创建目录

在root目录下创建docker目录
mkdir docker
在docker目录下创建redis目录
cd /docker
mkdir redis
在redis目录下创建data目录
cd redis
mkdir data

1.2.创建redis.conf

redis目录下,创建redis.conf配置文件


主要修改以下几项配置

# 开启密码验证(可选)
requirepass 123456

# 允许redis外地连接,需要注释掉绑定的IP
# bind 127.0.0.1

# 关闭保护模式(可选)
protected-mode no

# 注释掉daemonize yes,或者配置成 daemonize no。因为该配置和 docker run中的 -d 参数冲突,会导致容器一直启动失败
daemonize no

# 开启redis数据持久化, (可选)
appendonly yes

完整配置

 # bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#bind 127.0.0.1

protected-mode no

port 6379

tcp-backlog 511

requirepass 123456

timeout 0

tcp-keepalive 300

daemonize no

supervised no

pidfile /var/run/redis_6379.pid

loglevel notice

logfile ""

databases 16

always-show-logo yes

save 900 1
save 300 10
save 60 10000

stop-writes-on-bgsave-error no

rdbcompression yes

rdbchecksum yes

dbfilename dump.rdb

dir ./

replica-serve-stale-data yes

replica-read-only yes

repl-diskless-sync no

repl-disable-tcp-nodelay no

replica-priority 100

lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no

appendonly yes

appendfilename "appendonly.aof"

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

aof-load-truncated yes

aof-use-rdb-preamble yes

lua-time-limit 5000

slowlog-max-len 128

notify-keyspace-events ""

hash-max-ziplist-entries 512
hash-max-ziplist-value 64

list-max-ziplist-size -2

list-compress-depth 0

set-max-intset-entries 512

zset-max-ziplist-entries 128
zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

stream-node-max-bytes 4096
stream-node-max-entries 100

activerehashing yes

hz 10

dynamic-hz yes

aof-rewrite-incremental-fsync yes

rdb-save-incremental-fsync yes

1.3.创建docker-compose.yml

在docker目录下执行命令vim docker-compose.yml

输入内容如下:

version: '3'
services:
    #redis容器 - Redis container
    redis:
      image: redis:6.2.5
      container_name: demo-redis
      ports:
        - 16379:6379
      environment:
        # 时区上海 - Time zone Shanghai (Change if needed)
        TZ: Asia/Shanghai
      volumes:
        # 数据文件 - data files
        - /docker/redis/data:/data:rw
        - /docker/redis/redis.conf:/usr/local/etc/redis/redis.conf
        - /docker/redis/data/logs:/logs
      command: "redis-server /usr/local/etc/redis/redis.conf --requirepass 123456  --appendonly yes"
      privileged: true
      restart: always
      network_mode: bridge

2.启动redis容器

⏭执行命令 chmod 755 docker-compose.yml,给docker-compose.yml设置权限

✅执行命令docker-compose up -d,后台启动docker-compose

出现报错

-bash: /usr/local/bin/docker-compose: Permission denied

执行命令chmod +x /usr/local/bin/docker-compose

再次执行docker-compose up -d,成功启动redis
在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅简单介绍了在 Docker 中安装 Redis的步骤,以上方法亲测有效,希望能给大家一个参考。

⭕关注博主,不迷路 ⭕

创作不易,关注💖、点赞👍、收藏🎉就是对作者最大的鼓励👏,欢迎在下方评论留言🧐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/677221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS3-定位

网页常见布局方式 1 标准流 1 块级元素独占一行 → 垂直布局 2 行内元素/行内块元素一行显示多个 → 水平布局 2 浮动 可以让原本垂直布局的 块级元素变成水平布局 3 定位 1 可以让元素自由的摆放在网…

软件项目管理 第五章 软件项目的成本管理 课后习题参考答案——主编:李冰、张桥珍、刘玉娥

第五章 软件项目的成本管理 课后习题参考答案 1.选择题 (1)(A)是用系统的功能数量来测量其规模,与实现产品所使用的语言和技术是没有关系的。 A.功能点 B.对象点 C.代码行 D.用例点 (2)如果你是某项目的项目经理,你已经估…

easyX库文字输出相关函数(注释版)

您好这里是limou3434的博文系列,感兴趣的话可以看看我的其他系列。 本次我给您带来的是easyX库的字符输出系列函数,祝您看得开心。 0.文字输出函数概览 函数或数据类型描述LOGFONT文字样式的结构体。settextcolor设置当前文字颜色。settextstyle设置当…

Altium Designer VS CADENCE 颜色配置

最近公司要求用CADENCE画图,对于我这个用了10年以上AD的老玩家来说,真的是很不想接受,虽然AD有版权问题,据说也容易收到律师函,但还是不想更换,毕竟用了10年了,感情、熟练程度摆在那里。没办法&…

继承的基本内容

在面向对象部分提到过,面向对象三大特性(不是只有三个特性,而是指存在感最强的三个特性):封装,继承,多态。 封装:对比C语言,将数据和处理数据的方法放入一个类中&#xf…

【算法总结】——组合型回溯

文章目录 组合型回溯例题1——组合从输入考虑模板从答案考虑模板 例题2——括号生成解法一解法二 剪枝分析回溯时间复杂度的通用方法 组合型回溯 组合型和子集型之间的差异在哪里呢? 相比子集问题,组合问题是可以做一些额外的优化的(因为只…

Linux模块文件编译到内核与独立编译成.ko文件的方法

很多粉丝在群里提问,如何把一个模块文件编译到内核中或者独立变异成ko文件。本文给大家详解讲解。 1. 内核目录 Linux内核源代码非常庞大,随着版本的发展不断增加。它使用目录树结构,并且使用Makefile组织配置、编译。 初次接触Linux内核&…

Visual Studio 2022写Windows程序造成CPU占用率过高故障排除

我是荔园微风,作为一名在IT界整整25年的老兵,今天针对Visual Studio 2022写Windows程序造成CPU占用率过高故障进行排除。 下面是一个标准的Windows程序,也可以说是经典程序了,但是这个程序一运行,WinMain.exe的CPU占用…

Android 13(T) - binder阅读(2)- ServiceManager的启动与获取

1 ServiceManager的启动 1.1 服务的启动与注册 上一篇笔记中有说到,ServiceManager是一个特殊的binder service,所以它和普通的service一样需要打开binder驱动,在驱动中创建一个属于ServiceManager进程的binder_proc。 int main(int argc,…

django中发送get post请求并获得数据

django中发送get post请求并获得数据 项目结构如下注册路由 urls.py在处理函数中处理请求 views.py进行 get的请求01浏览器 get请求传参数02服务器django get参数解析获取01浏览器 post的发送浏览器get 请求 获取页面返回的 form 发送post请求 带参数 02服务器django的post请求…

【Unity3D】平面光罩特效

1 前言 屏幕深度和法线纹理简介中对深度和法线纹理的来源、使用及推导过程进行了讲解,激光雷达特效中讲述了一种重构屏幕像素点世界坐标的方法,本文将沿用激光雷达特效中重构像素点世界坐标的方法,实现平面光罩特效。 假设平面光罩的高度为 s…

SpringCloud Alibaba入门7之引入服务网关Gateway

我们需要在客户端和服务端之间加一个统一的入口,来作为请求的统一接入,而在微服务的体系中,承担这个角色的就是网关。我们只需要将网关的机器IP配置到DNS,或者接入负载,那么客户端的服务最终通过我们的网关,再转发到对…

GEE:欧几里得距离——计算目标图像中每个像素到目标像素的距离

作者:CSDN @ _养乐多_ 利用欧几里得距离计算目标图像中每个像素到目标像素的距离,以量化像素与目标的接近程度。 结果如下图所示, 文章目录 一、欧几里得距离简介二、代码一、欧几里得距离简介 欧几里得距离(Euclidean distance)是在数学中常用的一种距离度量方式,用于…

Android PMS APP安装流程

仓库网址:http://androidxref.com/9.0.0_r3/xref/frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java 一、PMS安装APP流程图 二、文件复制 PMS处理安装HandlerParams安装参数流程图 PackageManagerService.java#installStage…

职场求生记|唐朝打工人如何绝地求生

📚书名:《长安的荔枝》 ✏️作者:马伯庸 作为“见微”系列神作,其在微信读书总榜的第一名位置持续一段时间了,其讲述的内容和每个人都息息相关,更是能引起职场人的无限共鸣,值得深思。 ⭐故事…

使用networkx查看某一个节点的一阶/二阶/三阶邻居

文章目录 前言手动高级 前言 一般情况下,貌似这些图之类的包,只提供查询一个节点的一阶邻居,但是有的时候我们需要二阶甚至三阶,那么该如何做呢? 注意一下,本文的方法仅可以针对二阶或者三阶,…

一分钟 帮你搞懂什么是柔性数组!

文章目录 什么是柔性数组?柔性数组的特点柔性数组的使用模拟实现柔性数组的功能柔性数组的优势 什么是柔性数组? 柔性数组这个概念相信大多数人博友都没有听说过,但是它确实存在。 在C99中,结构(结构体)的…

【雕爷学编程】Arduino动手做(121)---夏普粉尘传感器模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

EMC学习笔记(十一)过孔

过孔 1.过孔模型1.1 过孔的数学模型1.2 对过孔模块的影响因素 2.过孔对信号传导与辐射发射影响2.2 过孔对阻抗控制的影响2.2 过孔数量对信号质量的影响 1.过孔模型 从过去设计的一些PCB板效果来看,过孔对于低频,低速信号的影响是很小的,但是…

Android 窗口实现原理

一、基本概念 1、窗口显示架构图 多窗口的核心原理其实就是分栈和设置栈边界2、Android的窗口分类 Android应用程序窗口,这个是最常见的(拥有自己的WindowToken)譬如:Activity与Dialog Android应用程序子窗口(必须依附到其他非子窗口才能存…