简单启动
docker run -d -p 6379:6379 redis:6.0.8
风险:没有数据备份
[root@localhost ~]# docker run -d -p 6379:6379 redis:6.0.8
863a9b9a776bba9459b9dc26ff5b3207c785c22c5a763490e31417a8bc2cdd3b
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
863a9b9a776b redis:6.0.8 "docker-entrypoint.s…" 6 seconds ago Up 4 seconds 0.0.0.0:6379->6379/tcp, ::: 6379->6379/tcp modest_curran
0f1e1bd79ea0 mysql:5.7 "docker-entrypoint.s…" 8 minutes ago Up 8 minutes 0.0.0.0:3306->3306/tcp, ::: 3306->3306/tcp, 33060/tcp mysqlname
[root@localhost ~]# docker exec -it 863a9b9a776b /bin/bash
root@863a9b9a776b:/data# redis-cli
127.0.0.1:6379> set k1 vi
OK
127.0.0.1:6379> get k1
"vi"
127.0.0.1:6379>
高级使用
1、宿主机新建目录 mkdir -p /app/redis
2、从已经安装过redis的服务器上copy配置redis.conf到/app/redis
修改/app/redis/redis.conf:
a、开启redis验证---可选
requirepass 123
b、允许redis外地连接--必选
注释掉#bind 127.0.0.1
protected-mode no
c、deamonize no
将daemoize yes 注释起来 或者 daemonize no 设置,因为该配置和docker run -d 参数冲突,导致容器一直启动失败
d、开启redis数据持久化 appendonly yes 可选
启动redis
docker run -p 6379:6379 --name myredis --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf
特别注意:
redis-server /etc/redis/redis.conf 告诉redis,配置文件要从宿主机的/etc/redis/redis.conf读取配置文件,因为redis配置文件我们已经修改了
[root@localhost redis]# docker images redis
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 2e50d70ba706 5 weeks ago 117MB
redis 6.0.8 16ecd2772934 21 months ago 104MB
[root@localhost redis]# docker run -p 6379:6379 --name myredis --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf
a685a2897cd92d9f4b038f86a5d197f7a0d88b3b8ceaa24825f95e47226acb42
[root@localhost redis]#
[root@localhost redis]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a685a2897cd9 redis:6.0.8 "docker-entrypoint.s…" 16 seconds ago Up 15 seconds 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp myredis
[root@localhost redis]# ll /app/redis/data/
total 0
[root@localhost redis]# ll /app/redis/
total 88
drwxr-xr-x. 2 polkitd root 4096 Jul 31 10:30 data
-rw-r--r--. 1 root root 84643 Jul 31 10:23 redis.conf
[root@localhost redis]#
[root@localhost redis]# docker exec -it myredis /bin/bash
root@a685a2897cd9:/data# redis-cli
127.0.0.1:6379> get k1
(nil)
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379>