容器 Docker 建立Redis5 集群

2021-09-24 03:37:04 字數 2507 閱讀 5162

docker pull redis
docker images 檢視映象

mkdir /opt/module/redis
編寫redis-cluster.tmpl 檔案

port $

#requirepass wzth@dev123

#masterauth wzth@dev123

protected-mode no

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

cluster-announce-ip 47.92.145.192

cluster-announce-port $

cluster-announce-bus-port 1$

for port in `seq 7000 7005`; do \

mkdir -p ./$/conf \

&& port=$ envsubst < ./redis-cluster.tmpl > ./$/conf/redis.conf \

&& mkdir -p ./$/data; \

done

docker network create redis-net
for port in `seq 7000 7005`; do \

docker run -d -ti -p $:$ -p 1$:1$ \

-v /opt/module/redis/$/conf/redis.conf:/usr/local/etc/redis/redis.conf \

-v /opt/module/redis/$/data:/data \

--restart always --name redis-$ --net redis-net \

--sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; \

done

for port in `seq 7000 7005`; do \

echo -n "$(docker inspect --format '}' "redis-$")":$ ' ' ; \

done

或者使用docker容器ip

/usr/local/bin/redis-cli --cluster create \

172.18.0.2:7000 \

172.18.0.3:7001 \

172.18.0.4:7002 \

172.18.0.5:7003 \

172.18.0.6:7004 \

172.18.0.7:7005 \

--cluster-replicas 1

然後一直輸入yes即可成功

如果出現錯誤

解決辦法

1)、將需要新增的節點下aof、rdb等本地備份檔案刪除;

2)、同時將新node的集群配置檔案刪除,即:刪除你redis.conf裡面cluster-config-file所在的檔案;

3)、再次新增新節點如果還是報錯,則登入新node,./redis-cli–h x –p對資料庫進行清除:

***.***.***.***:7001>  flushdb      #清空當前資料庫

使用redis客戶端新增快取,然後檢視其他節點是否一致,語法

set keyname value

docker建立redis容器

建立redis容器例項,我們使用了docker的埠對映機制,從而我們就可以使用host伺服器的ip訪問這些例項 docker run d name node2 p 7002 6379 dockerfile redis docker run d name node3 p 7003 6379 docke...

Docker建立容器

容器是映象的乙個執行例項,是基於映象執行的輕量級環境,是乙個或者一組應用。怎樣建立容器?將容器所基於的映象名稱傳入即可,docker會從本地倉庫中尋找該映象,如果本地倉庫沒有,則會自動從遠端倉庫中拉取。docker pull nginx 拉取nginx最新版本的映象 檢視映象 建立nginx容器 d...

Docker建立MySQL容器

本文目的是建立乙個mysql的image,並且在新建立出來的容器裡自動啟動mysql服務接受外部連線 步驟 1.首先建立乙個目錄並在目錄下建立乙個dockerfile,檔案內容如下 from centos centos6 maintainer fanbin kong kongxx hotmail.c...