一、使用Dockerfile創建自己想要的redis版本
FROM centos
MAINTAINER wang
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN echo y | yum -y install gcc automake autoconf libtool make && echo y | yum -y install gcc-c++ && echo y | yum -y install diffutils
ADD redis-6.2.6.tar.gz /usr/local
COPY readme.txt /usr/local
CMD /bin/sh
RUN cd /usr/local/redis-6.2.6/src && make && make install
創建完成Dockerfile后,使用docker build創建images,其中.代表當前Dockerfile所在的檔案目錄,ADD命令的全目錄是./redis-6.2.6.tar.gz,即Dockerfile目錄下的檔案,
docker build -t redis .
二:創建redis組態檔:(組態檔不全,勿用于公司)
#!/bin/bash
for port in 6379 6380 6381 6389 6390 6391
do
mkdir -p /data-redis/node-$port/conf
cat << EOF >> /data-redis/node-$port/conf/redis.conf
pidfile "/var/run/redis_$port.pid"
port $port
dbfilename "dump_$port.rdb"
logfile "$port.log"
#關閉ip系結,不然外網無法訪問!
#bind=127.0.0.1
#關閉保護模式
protected-mode no
######打開集群模式#######
cluster-enabled yes
cluster-config-file node-$port.conf
#主機宕機多少秒后采用從機
cluster-node-timeout 15000
EOF
done
其中: cat << EOF >> /data-redis/node-$port/conf/redis.conf 表示用EOF創建零時檔案并使用cat查看(先執行cat << EOF),然后以(>>)追加(若想要覆寫則使用>),形式輸入到/data-redis/node-$port/conf/redis.conf檔案中,
最后一個EOF其前后千萬不要手欠創建空格,會報錯的!
三、創建docker網路
創建redis使用的專用網段及網關:
docker network create --driver bridge --subnet 192.171.0.0/16 --gateway 192.171.0.1 redis-net
四、使用shell腳本啟動docker的redis鏡像
#!/bin/bash
for port in 6379 6380 6381 6389 6390 6391
do
docker run -it -d -p $port:$port -p 1$port:1$port --name redis-$port -v /data-redis/node-$port/conf/redis.conf:/usr/local/redis-6.2.6/redis.conf --net redis-net redis redis-server /usr/local/redis-6.2.6/redis.conf
done
只掛載了組態檔,redis的資料庫沒有掛載,可以進入docker容器內檢查redis是否啟動成功,成功redis-server *:6379 [cluster]
五、redis集群合體
進入docker的redis一個容器內,使用以下命令讓redis集群合體:
redis-cli --cluster create --cluster-replicas 1 192.168.0.2:6379 192.168.0.3:6380 192.168.0.4:6381 192.168.0.5:6389 192.168.0.6:6390 192.168.0.7:6391
合體前請使用docker network inspect redis-net檢查ip地址是否與上述埠對應!
六、在windows系統中添加路由
route add 192.171.0.0 mask 255.255.0.0 192.168.159.130
添加路由后即可從windows訪問到了虛擬機linux的docker的redis容器,其中子網192.171.0.0和掩碼必須與容器使用的子網掩碼相同,192.168.159.130為linux的ip地址,其實就是做了一個路由,以linux的IP地址為網關,
不添加路由也可訪問,但是訪問延遲較高,時間=258ms,
具體以下鏈接自行查看:
在Windows宿主機中連接虛擬機中的Docker容器總結_馬賽克的博客-CSDN博客一:簡單拓撲圖二:設定步驟1.查看docker容器內的系統IP2.配置虛擬主機的IP保證宿主機和虛擬機在同一個網段(建議采用NAT,橋接跳過該步驟不建議)3.添加宿主機到Docker的路由以管理員身份運行CMD,添加如下路由ROUTE add 172.18.0.0 mask 255.255.0.0 10.241.250.0檢查是...https://blog.csdn.net/qq_39112646/article/details/88763983
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/344416.html
標籤:其他
