开发机直连 Docker 中的 Redis 容器小教程

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

开发机直连 Docker 中的 Redis 容器小教程

在笔者日常开发中,都是把redis装在windows系统中。虽然可以通过RedisDesktopManager等客户端工具连接操作redis,但是还是觉得low了一些。因为作为程序员,我可能更想在Linux系统操作redis,这样在遇到生产环境实操时候,才不会显得束手无策。

今天它来了,我们将会在虚机中安装docker,然后在docker中安装redis,最后让我们宿主机(开发机)连接到我们安装的redis,测试能否正常使用。

因为在win7中安装虚机不是我们这篇文章主要目的,大家可以自己搜索资料安装。

一.你需要准备什么?
windows7
VMware Workstation Pro
CentOS 7.0
MobaXterm_Personal
Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。

其中,我是用前三个搭建Linux工作环境,用MobaXterm_Personal工具连接操作Linux系统.如果你有一套可操作的Linux工作环境,完全可以跳过这一步;

二.安装Docker
2.1 卸载旧版本

$ sudo yum remove docker

              docker-client 
              docker-client-latest 
              docker-common 
              docker-latest 
              docker-latest-logrotate 
              docker-logrotate 
              docker-selinux 
              docker-engine-selinux 
              docker-engine

2.4 安装 yum
执行以下命令安装依赖包:

$ sudo yum install -y yum-utils

       device-mapper-persistent-data 
       lvm2

鉴于国内网络问题,强烈建议使用国内源,我们选用中科大镜像源

执行下面的命令添加 yum 软件源:放置一些类似docker软件的仓库

关于yum源,可以阅读这篇文章yum源解释:

https://blog.csdn.net/qq_41869566/article/details/79945078

$ sudo yum-config-manager

--add-repo 
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

2.5 安装docker
$ sudo yum install -y docker-ce docker-ce-cli containerd.io

2.6 启动docker
$ sudo systemctl start docker

2.7 配置docker国内镜像加速
国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内加速器服务,例如:

网易云加速器 https://hub-mirror.c.163.com
阿里云加速器(需登录账号获取)
由于镜像服务可能出现宕机,建议同时配置多个镜像。各个镜像站测试结果请到 docker-practice/docker-registry-cn-mirror-test 查看。

国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务,具体请参考官方文档。

本节我们以 网易云 镜像服务 https://hub-mirror.c.163.com 为例进行介绍。

Ubuntu 16.04+、Debian 8+、CentOS 7
请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

{
"registry-mirrors": [

"https://hub-mirror.c.163.com"

]
}

注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。

之后重新启动服务。

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

2.8 测试docker
$ sudo docker run hello-world

三 安装redis
3.1 拉取镜像
$ sudo docker pull redis

查看镜像

$ sudo docker images

3.2 准备目录

#进入用户根目录
$ sudo cd ~
#创建文件夹
$ sudo mkdir -p /root/Downloads/redis/conf
$ sudo mkdir -p /root/Downloads/redis/data
#进入到conf目录
$ sudo cd /root/redis/redis01/conf
#下载一个redis.conf文件[如果太慢,直接网页下载上传到服务器目录]
$ sudo wget http://download.redis.io/redis-stable/redis.conf

3.3 启动redis
因为默认镜像没有配置文件,要是宿主主机连接,我们要挂载配置文件目录

进入这个目录

$ sudo cd /root/Downloads/redis

启动redis容器

$ sudo docker run -p 6379:6379 --privileged=true --name redis -v $PWD/conf/redis.conf:/etc/redis/redis.conf -v $PWD/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

3.4 查看正在运行的容器

$ sudo docker container ps

3.5 测试redis是否正常

// 查看正在运行的容器
$ sudo docker ps
//进入容器内部
$ sudo docker exec -it /bin/bash
//退出
ctrl + D

3.6 修改redis配置文件
vim基本操作

本来

bind 127.0.0.1
protected-mode yes

更改为

bind 127.0.0.1

protected-mode no
requirepass milo

重启redis容器

四.宿主主机连接redis
4.1 客户端工具连接测试
首先,查看工具连接linux的ip,笔者的如下:

使用RedisDesktopManager工具测试

4.2 开发机连接测试
首先,我们修改配置文件中redis的连接ip,然后启动项目,访问一个带有缓存的页面,我们去redis容器中看看是否有指定key

五.总结
经过上面的一顿操作,我们以后开发机直接连接redis容器,也能多熟悉linux系统,谢谢大家阅读

原文地址https://www.cnblogs.com/javazhiyin/p/12802529.html

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
21天前
|
NoSQL Redis Docker
Docker中Redis数据迁移到本地
Docker中Redis数据迁移到本地
18 1
|
6天前
|
NoSQL 关系型数据库 MySQL
开发者福音:用IDEA和Iedis2加速Redis开发与调试
开发者福音:用IDEA和Iedis2加速Redis开发与调试
16 0
开发者福音:用IDEA和Iedis2加速Redis开发与调试
|
8天前
|
运维 NoSQL 算法
Java开发-深入理解Redis Cluster的工作原理
综上所述,Redis Cluster通过数据分片、节点发现、主从复制、数据迁移、故障检测和客户端路由等机制,实现了一个分布式的、高可用的Redis解决方案。它允许数据分布在多个节点上,提供了自动故障转移和读写分离的功能,适用于需要大规模、高性能、高可用性的应用场景。
15 0
|
30天前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
188 0
|
30天前
|
NoSQL Redis 数据安全/隐私保护
在Docker中设置Redis的密码
在Docker中设置Redis的密码
79 0
|
30天前
|
NoSQL Redis Docker
使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)
使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)
31 0
|
1月前
|
Shell Docker 容器
Docker的常用命令:加速你的容器化开发与部署
Docker的常用命令:加速你的容器化开发与部署
55 0
|
1月前
|
Java Go 开发者
Docker容器技术简介及其与Go语言的结合点
【2月更文挑战第23天】本文首先概述了Docker容器技术的核心概念和优势,接着探讨了Go语言与Docker容器技术的结合点。通过阐述Docker的轻量级、可移植性和版本控制等特性,以及Go语言在容器化应用中的优势,本文旨在说明两者结合能够实现更高效、灵活的应用开发和部署。
|
1月前
|
Oracle 关系型数据库 数据库
|
9天前
|
Linux Docker 容器
docker 容器常用命令
docker 容器常用命令
12 0