Docker部署redis

11/13/2021 redisdocker

参考文档

https://hub.docker.com/_/redis (opens new window)

首先创建两个文件,用于配置redis以及持久化地址

mkdir -p datas/redis/conf
mkdir -p datas/redis/data

进入到配置目录,创建配置文件

cd datas/redis/conf/
touch redis.conf

使用vim编辑redis.conf

vi redis.conf

进入vi编辑器中,i进入插入模式,Esc退出编辑模式,:wq!保存退出

写入以下配置

#bind 127.0.0.1 
protected-mode yes
appendonly yes 
requirepass xpt@HS
  • protected-mode:

    • no:此时外部网络可以直接访问
  • yes:需配置bind ip或者设置访问密码

  • bind:对应上面yes情况下设置的ip,这里我们把它注释掉也就是不限制ip

  • appendonly:开启数据持久化到磁盘

  • requirepass:设置访问密码

再确认一下是否写入成功

cat redis.conf

使用pwd查看目前的地址

[root@iZbp1gdu2nsssshjp27gpoZ conf]# pwd
/root/datas/redis/conf

根据以上地址我们使用绝对路径创建docker容器

docker run --name myredis -p 6399:6379 --restart=always -v /root/datas/redis/data:/data -v /root/datas/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf

docker run :创建一个新的容器并运行一个命令

  • --name:为容器指定一个名称
  • --restart=always:docker重启时容器也跟着重启
  • -p:指定端口映射,格式:宿主端口:容器端口
  • -v /root/datas/redis/data:/data:将redis运行时/data产生的数据持久化保存到我们创建的本地/redis/data目录中
  • -v /root/datas/redis/redis.conf:/etc/redis/redis.conf:将我们本地配置的redis信息写进容器的redis里面
  • -d:后台运行容器
  • redis:镜像名称
  • redis-server /etc/redis/redis.conf:启动时执行的命令

查看容器运行状态

[root@iZbp1gdu2nu1isssws7gpoZ conf]# docker ps -a
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                                                                      NAMES
00a5d3daab27   redis                    "docker-entrypoint.s…"   42 seconds ago   Up 41 seconds   0.0.0.0:6399->6379/tcp, :::6399->6379/tcp                                  myredis

接着我们进入redis容器去操作看看

docker exec -it myredis redis-cli -h 127.0.0.1 -p 6379 -a xpt@HS
  • -it :开启一个交互模式的终端

  • myredis:容器的别名,根据你自己的修改

  • redis-cli:使用redis-cli来解释执行

    • -h:redis服务器ip(进入容器后相对于容器的ip)
  • -p:访问端口(不是docker端口,是容器内redis的端口,可以在redis.conf中指定,默认是6379)

  • -a:访问密码(上面redis.conf里面配置的密码)

[root@iZbp1gdu2ddssssp27gpoZ conf]# docker exec -it myredis redis-cli -h 127.0.0.1 -p 6379 -a xpt@HS
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "xpt@HS"
127.0.0.1:6379> set name xpt
OK
127.0.0.1:6379> get name
"xpt"
127.0.0.1:6379> quit
[root@iZbp1gdu2ddssssp27gpoZ conf]# 
Last Updated: 11/24/2021, 4:49:54 PM