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)