开发机连接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源解释。。。。。

sudo yum-config-manager \
    --add-repo \
    https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

2.5 安装docker最新版

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2.6 启动docker

sudo systemctl start docker

2.7 配置docker国内镜像加速

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

由于镜像服务可能出现宕机,建议同时配置多个镜像。各个镜像站测试结果请到 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 /usr/local
 #创建文件夹
sudo mkdir -p /usr/local/redis/conf
sudo mkdir -p /usr/local/redis/data
 #进入到conf目录
sudo cd /redis/conf
 #下载一个redis.conf文件[如果太慢,直接网页下载上传到服务器目录]
sudo wget http://download.redis.io/redis-stable/redis.conf

3.3 启动redis

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

#进入这个目录
sudo cd /usr/local/redis

以下方式可任选其一

#以主机网络模式启动redis容器
docker run -itd --network host --name redis -v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf -v /usr/local/redis/data:/data redis  redis-server /etc/redis/redis.conf --appendonly yes
#指定端口启动redis容器
docker run -itd -p 6379:6379 --name redis -v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf -v /usr/local/redis/data:/data redis  redis-server /etc/redis/redis.conf --appendonly yes
//参数解释:
--network host  主机网络模式,如果指定了,-p指定的会被忽略,可用于解决宿主机无法访问docker内部容器问题

-p 6379:6379 端口映射 :前表示主机部分,:后表示容器部分。

--name redis 指定该容器名称,以后重启,停止,移除时比较方便

-v 挂载目录 :前表示主机部分,:后表示容器部分。

为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。

-d redis 表示后台启动redis

redis-server /etc/redis/redis.conf  以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf

3.4 查看redis 容器启动日志

docker logs -tf redis

3.5 查看正在运行的容器

sudo docker ps

在这里插入图片描述

3.6 测试redis是否正常

// 查看正在运行的容器
sudo docker ps  
//进入容器内部
sudo docker exec -it <CONTAINER Name> /bin/bash 

redis-cli

ping
//退出
ctrl + D

在这里插入图片描述

3.6 修改redis配置文件

vim基本操作

# 本来
bind 127.0.0.1
protected-mode yes

#更改为
# bind 127.0.0.1
#关闭保护模式
protected-mode no
#设置密码
requirepass milo
daemonize no
#修改端口号[可自己随意设置]
port 16379

重启redis容器
在这里插入图片描述

四.宿主主机连接redis

4.1 客户端工具连接测试

首先,查看工具连接linuxip,笔者的如下,关键的一点我们要关闭linux服务器的防火墙

在这里插入图片描述

使用RedisDesktopManager工具测试

在这里插入图片描述

4.2 开发机连接测试

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

在这里插入图片描述

五.总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值