windows使用docker安装redis并使用docker执行redis-cli

2024-05-09 16:32

本文主要是介绍windows使用docker安装redis并使用docker执行redis-cli,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 安装Windows Docker Desktop
  • 下载Redis镜像
  • 启动下载的Redis镜像的容器
  • Redis-cli连接Redis

安装Windows Docker Desktop

下载并安装,docker hub登录之类不赘述

下载Redis镜像

启动docker desktop,本质是为了启动docker daemon(守护进程)。执行命令前必须保证docker daemon是启动状态
去docker hub寻找中意的镜像
我中意的是6.2.4-alpine,6.2.4是redis版本,目前最新,alpine是一个精简版linux,镜像基于alpine构建所以体积也小。
命令如下:

docker pull redis:6.2.4-alpine

启动下载的Redis镜像的容器

命令如下:

docker run -v C:\work\data\docker-redis-volume\conf:/usr/local/etc/redis --name myredis -d -p 6379:6379 redis:6.2.4-alpine redis-server /usr/local/etc/redis/redis.conf

先不要急着执行!! 还有一些微小的工作要做。
这个是我自己用的命令,看起来有点长,我解释一下
命令的核心其实就是这样:

docker run -d redis:6.2.4-alpine redis-server

只要这一句就可以启动redis了,这里-d是指在后台启动容器,只打印启动的容器的ID,不加的话容器执行的命令会打印到当前命令行,在这个例子中我们会看到redis的启动信息

接下来逐一介绍我使用的语句里的参数含义:

-v C:\work\data\docker-redis-volume\conf:/usr/local/etc/redis

-v是指将容器中的 /usr/local/etc/redis 目录挂载到宿主机的C:\work\data\docker-redis-volume\conf目录
后面的容器目录不用修改,前面的目录根据自己电脑的目录来修改

--name myredis

给你的容器起个名字,随便起吧

-p 6379:6379

-p用来映射容器的端口,前面是宿主机的,后面是容器里的

redis-server /usr/local/etc/redis/redis.conf

redis-server其实就是启动redis的命令,后面接上一个文件,表示使用这个配置文件来启动,这个配置文件的路径可以看到,和我们之前挂载出来的路径相同,结合前面的-v命令,意思就是使用宿主机中的C:\work\data\docker-redis-volume\conf\redis.conf文件作为配置文件启动容器中的redis。
这里配置文件可以去官网下载,根据自己的redis版本选择。
windows中注意修改配置文件中的如下几点:

#bind 127.0.0.1

这一行加上#号,表示不用绑定本地访问,这很重要,尤其在windows上,实测如果不注释,宿主机上都无法访问
不知道为什么,我在Mac系统上试过,可以不用注释这行,就能够本地访问。猜测可能是因为windows的wsl,宿主机的访问还是被当作外部访问了,有了解详情的高手可以指点一下。

然后的操作二选一,关闭保护模式或者设置密码,建议是设置密码

#protected-mode yes

注释这行关闭保护模式

requirepass 97812e6b-d9be-4cd1

或者打开这行设置密码
创建好目录,下载和修改了配置文件,准备工作完成,可以执行启动命令了。
之后docker ps查看可以看到:
查看已启动redis容器

Redis-cli连接Redis

使用docker装的redis,宿主机没有装redis自然也没有redis-cli了,那么怎么连接呢?
两种方式,一种直接进入redis容器内部执行redis-cli

$ docker exec -it a52dc redis-cli

这里-it是-i -t合起来的意思,作用是使用交互式命令行来进行操作,a52dc就是容器的id,docker很多命令都不要求id写全,只能达到区分效果就行
整句话的意思就是我要到a52dc这个容器内部去执行redis-cli命令,并且把这个命令的输入输出关联到当前的交互窗口
上面这个方式是最简单的,但是我们想模拟外部连接该怎么做呢,可以再启动一个只执行redis-cli的redis镜像

$ docker run -it --network container:a52dc --rm redis:6.2.4-alpine redis-cli

这个命令使用redis:6.2.4-alpine镜像启动另外一个容器,不过只是执行其中的redis-cli命令
这里–network后面是container用法,指定和a52dc这个 container公用一个网络
–rm表示当容器退出,就会自动删除容器和产生的相关文件,由于我们只是使用redis-cli命令,加上–rm非常合理
这种方式不仅可以连接本地,也可以连接远程redis,只需要在redis-cli之后接上相关参数,和使用redis-cli一样。

$ docker run -it --rm redis:6.2.4-alpine redis-cli -h some-host -p some-port

这篇关于windows使用docker安装redis并使用docker执行redis-cli的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/973903

相关文章

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1