1. 拉取镜像
(拉取DaoCloud上的Redis镜像,版本为5.0.3)
$ docker pull daocloud.io/library/redis:5.0.3
2. 给镜像打标签
(用docker images命令可以看到,从DaoCloud拉取下来的镜像名称为:daocloud.io/library/redis,所以此处是有强迫症的情况下修改)
$ docker tag 0f88f9be5839 redis:5.0.3
说明:
0f88f9be5839 = 拉取下的镜像IMAGE ID
redis = 新名称
5.0.3 = 版本号(尽量版本号和Redis版本号一致,以便后期管理)
3. 删除源镜像
$ docker rmi daocloud.io/library/redis:5.0.3
4. 运行Redis容器
非集群模式:
$ docker run --name redis7000 -p 7000:6379 -d redis:5.0.3 redis-server --requirepass "123456" --appendonly yes --protected-mode no
集群模式:
$ docker run --name redis7001 -p 7001:6379 -d redis:5.0.3 redis-server --requirepass "123456" --appendonly yes --protected-mode no --cluster-enabled yes
docker run --name redis7002 -p 7002:6379 -d redis:5.0.3 redis-server --requirepass "123456" --appendonly yes --protected-mode no --cluster-enabled yes
docker run --name redis7003 -p 7003:6379 -d redis:5.0.3 redis-server --requirepass "123456" --appendonly yes --protected-mode no --cluster-enabled yes
docker run --name redis7004 -p 7004:6379 -d redis:5.0.3 redis-server --requirepass "123456" --appendonly yes --protected-mode no --cluster-enabled yes
docker run --name redis7005 -p 7005:6379 -d redis:5.0.3 redis-server --requirepass "123456" --appendonly yes --protected-mode no --cluster-enabled yes
docker run --name redis7006 -p 7006:6379 -d redis:5.0.3 redis-server --requirepass "123456" --appendonly yes --protected-mode no --cluster-enabled yes
说明:
--name = Redis名称
--requirepass = Redis密码
--appendonly = (yes)持久化功能已启动
--protected-mode = (no)保护模式已经关闭
--cluster-enabled = (yes)集群模式已开启
5. 查看容器状态
$ docker ps
6. 查看6个redis容器的IP
$ docker inspect redis7001 | grep IPAddress
7. 进入redis7001容器
(客户端交互测试)
$ docker exec -it redis7001 bash
$ redis-cli
$ exit
$ redis-cli -h 172.17.0.2 -p 6379
$ exit
8. 集群创建
(任意一台服务器执行就可以了)
$ redis-cli -a 123456 --cluster create 172.17.0.2:6379 172.17.0.3:6379 172.17.0.4:6379 172.17.0.5:6379 172.17.0.6:6379 172.17.0.7:6379 --cluster-replicas 1
说明:replicas 1 表示我们希望为集群中的每个主节点创建一个从节点
9. 查看集群node状态
a)$ redis-cli -h 172.17.0.2 -p 6379
b)$ cluster nodes
(error) NOAUTH Authentication required.
说明:如果遇到这个问题,说明需要验证密码
$ auth 123456
可能会用到的命令:
停止所有的container,这样才能够删除其中的images
docker stop $(docker ps -a -q)
把容器都删除掉,因为光停止还是不能删除镜像
docker rm $(docker ps -a -q)