1、获取redis镜像
[root@10-13-4-243 ~]# docker pull redis
Using default tag: latest
latest: Pulling from library/redis
bf5952930446: Pull complete
911b8422b695: Pull complete
093b947e0ade: Pull complete
5b1d5f59e382: Pull complete
7a5f59580c0b: Pull complete
f9c63997c980: Pull complete
Digest: sha256:09c33840ec47815dc0351f1eca3befe741d7105b3e95bc8fdb9a7e4985b9e1e5
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest
2、查看本地镜像
[root@10-13-4-243 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 1319b1eaa0b7 4 days ago 104MB
nacos/nacos-server latest ef8e53226440 5 days ago 914MB
3、创建配置文件 redis.conf,从官网下载 http://download.redis.io/redis-stable/redis.conf
- 在 /usr/local 目录下创建docker目录
- 在docker目录下创建redis目录
- 复制配置文件redis.conf 到该目录下
- 创建数据存储目录data
[root@10-13-4-243 ~]# mkdir /usr/local/docker
[root@10-13-4-243 ~]# cd /usr/local/docker/
[root@10-13-4-243 docker]# mkdir redis
[root@10-13-4-243 docker]# cd redis/
[root@10-13-4-243 redis]# cp /root/redis.conf ./
[root@10-13-4-243 redis]# ls
redis.conf
[root@10-13-4-243 redis]# mkdir data
[root@10-13-4-243 redis]# ls
data redis.conf
修改启动默认配置
- bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
- protected-mode no #默认yes,开启保护模式,限制为本地访问
- daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败。非后台模式,如果为YES 会的导致 redis 无法启动,因为后台会导致docker无任务可做而退出。
- databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。。
- dir ./ #输入本地redis数据库存放文件夹(可选)
- appendonly yes #redis持久化(可选)
- requirepass 密码 #配置redis访问密码
4、创建redis容器
ps.如果安装了harbor,harbor安装时自动安装了一个redis,名称也是叫redis,所以再启动自用的redis时就要改个名称了。
[root@10-13-4-243 redis]# docker run -p 6379:6379 --restart=always --name redis -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
- -p 6379:6379 把容器内的6379端口映射到宿主机6379端口
- --name redis 容器名字
- -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf 容器 /etc/redis/redis.conf 配置文件 映射宿主机 /usr/local/docker/redis/redis.conf。 会将宿主机的配置文件复制到docker中。配置文件映射,docker镜像redis 默认无配置文件。
- -v /usr/local/docker/redis/data:/data 容器的 /data 映射到宿主机的 /usr/local/docker/redis/data。把redis持久化的数据在宿主机内显示,做数据备份。
- -d redis 后台模式启动 redis
- redis-server /etc/redis/redis.conf 这个是关键配置,让redis不是无配置启动,而是按照这个
redis.conf
的配置启动。docker镜像redis 默认无配置文件启动。 - --appendonly yes redis启动后数据持久化
5、查看运行的容器
[root@10-13-4-243 redis]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
400b75bd5292 redis "docker-entrypoint.s…" 10 seconds ago Up 9 seconds 0.0.0.0:6379->6379/tcp redis
6、测试redis (如果有密码,则先用auth password)
[root@10-13-4-243 redis]# docker exec -it redis /bin/bash
root@400b75bd5292:/data# pwd
/data
root@400b75bd5292:/data# redis-cli
127.0.0.1:6379> set test 1
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth redispassword
OK
127.0.0.1:6379> set test 1
OK