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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)