热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通过dockerfile,使用配置文件部署redis

文章目录前言一、内容


文章目录



  • 前言

  • 一、内容



    • 1.文件列表

    • 2.Dockerfile内容

    • 3.myredis.conf内容



  • 二、使用步骤



    • 1.修改配置

    • 2.构建镜像

    • 3.创建容器



  • 总结





前言

最近需要部署一个redis服务供emqx使用。由于环境上均为容器化部署服务,所以我们需要使用docker来进行部署。

也看了一下网上docker部署redis的文章,存在几个问题。
在这里插入图片描述

1.大多数教程是直接拉取官方redis最新版本镜像,即latest标签或不指定标签。然后直接使用该镜像执行docker run 命令创建容器。首先我们使用镜像要明确版本号,因为latest版本是不断更新的,有可能导致我们后续的部署失败,或者造成版本的不匹配。
2.部署时都是用默认配置,没有配置文件。
3.即使是使用配置文件,也选择将配置文件挂载到宿主机上

综上,我将dockerFile 和配置文件统一打包,创建新镜像。这样既能保证每次创建的镜像都是相同的,又能通过配置文件的方式,修改redis的配置

具体的压缩包在此下载,不收费。

https://download.csdn.net/download/qq_39231899/82331253



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


一、内容

1.文件列表

![在这里插入图片描述](https://img-blog.csdnimg.cn/fc7d626f8c2d48e2a3a54e7397e7a695.png


2.Dockerfile内容

FROM redis:4.0.6

WORKDIR /opt/redis

COPY myredis.conf /opt/redis/


3.myredis.conf内容

port 30379
bind 0.0.0.0
protected-mode yes
appendonly yes
requirepass 123456

注释:
port:redis连接端口
bind 允许连接的ip,0.0.0.0表示允许所有ip连接该redis
protected-mode 保护模式,no表示允许公网连接
appendonly 配置数据持久化,避免redis宕机后数据丢失
requirepass 密码,不配置则无需密码即可连接redis


二、使用步骤

1.修改配置

修改myredis.conf中的配置项,也可以增加其他配置项


2.构建镜像

进入Dockerfile所在目录
执行构建镜像命令

docker build .

也可以通过 -t 来执行镜像的tag

docker build -t myredis:4.0.6 .

3.创建容器

第二步构建完成后会得到镜像id,也可以通过下面的命令查询镜像列表

docker images

创建并启动容器

docker run --name redis -p 30379:30379 -d 镜像ID redis-server myredis.conf

注释:
–name 代表容器名称
-p 容器暴露端口:要映射的容器内部端口
-d 代表后台运行


总结

通过以上方法即可快速统一的部署所需redis
在这里插入图片描述



推荐阅读
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了如何使用iptables添加非对称的NAT规则段,以实现内网穿透和端口转发的功能。通过查阅相关文章,得出了解决方案,即当匹配的端口在映射端口的区间内时,可以成功进行端口转发。详细的操作步骤和命令示例也在文章中给出。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
author-avatar
夏目nyako酱丶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有