Linux(CentOS)环境Docker容器中安装Redis镜像

Linux(CentOS)环境Docker容器中安装Redis镜像

1、下载Redis镜像

docker pull redis     #如果使用docker pull redis命令,就会下载最新的redis镜像

docker pull redis:5.0.5  #下载Redis 5.0.5版本镜像

2、创建实例并启动Redis

mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf  

docker run -p 6378:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

参数解释:

mkdir -p /mydata/redis/conf          #创建目录
touch /mydata/redis/conf/redis.conf  #创建文件(为什么要创建这个文件呢?因为我们在把容器内部的文件挂载到主机的时候
会把他当做目录去挂载,所以提前创建好这个文件就不会挂载成目录了)

docker run -p 6378:6379 --name redis \  #把Docker中的redis的6379端口映射到主机的6378端口
(因为我主机已经安装了redis,6379端口被占用了) --name redis 是把redis容器起名叫redis
-v /mydata/redis/data:/data \           #将redis容器内部的data文件夹挂载到主机
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \  #将redis容器内部的redis.conf文件挂载到主机
-d redis redis-server /etc/redis/redis.conf  #开启Redis的后台运行

实例创建成功:

[root@Silence /]# mkdir -p /mydata/redis/conf
[root@Silence /]# touch /mydata/redis/conf/redis.conf
[root@Silence /]# docker run -p 6378:6379 --name redis \
> -v /mydata/redis/data:/data \
> -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
> -d redis redis-server /etc/redis/redis.conf
32142759198fa843b8c98915d48c19acd4f1d1d4e4c179b375b5ac4432d73d3f
[root@Silence /]# 
#将容器的端口映射到主机端口
docker run  -p  ip:hostPort:containerPort  redis  

查看Docker中正在运行的容器:

[root@Silence /]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
81eb02763fc4        redis               "docker-entrypoint.s…"   2 minutes ago       Up 2 minutes        0.0.0.0:6378->6379/tcp              nostalgic_johnson
743df4fba2e9        mysql:5.7           "docker-entrypoint.s…"   3 hours ago         Up 34 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

可以看到我们刚刚安装的redis已经运行起来了。

3、打开redis客户端连接redis

docker exec -it redis redis-cli

测试redis:

[root@Silence /]# docker exec -it redis redis-cli
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set name docker
OK
127.0.0.1:6379> get name
"docker"
127.0.0.1:6379> exit
[root@Silence /]# docker restart redis
redis
[root@Silence /]# docker exec -it redis redis-cli
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> 

经过测试我们发现我们插入的数据在redis重启后就查询不到了,也就是说redis并没有做持久化操作,所以我们需要配置一下redis进行持久化操作。

vi /mydata/redis/conf/redis.conf  #编辑redis.conf文件

#在文件中添加appendonly yes      #打开AOF持久化模式
保存并退出

docker restart redis  #重启redis

改完配置文件之后我们再来测试一下:

[root@Silence conf]# docker exec -it redis redis-cli
127.0.0.1:6379> set name docker
OK
127.0.0.1:6379> get name
"docker"
127.0.0.1:6379> exit
[root@Silence conf]# docker restart redis
redis
[root@Silence conf]# docker exec -it redis redis-cli
127.0.0.1:6379> get name
"docker"
127.0.0.1:6379> 

再次重启后我们发现Redis已经有持久化操作了,redis突然崩溃也不会造成数据的丢失了。

4、使用可视化工具远程连接Redis

如果你使用的阿里云服务器那么需要在安全组中打开6379端口,详情请看《Linux(CentOS)环境Docker容器中安装Mysql镜像》这篇文章的 问题解决 部分。

我使用的是redis-desktop-manager可视化工具来远程连接的Redis
在这里插入图片描述

连接成功!至此,Redis就可以正常使用了。

猜你喜欢

转载自blog.csdn.net/nxw_tsp/article/details/108042758
今日推荐