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...