Docker部署redis
Xpt 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]#