发布镜像到DockerHub:

aaa2222339;qweewq123

docker 三件客 docker3.0_子网

 打完标签后会生成新的镜像

docker push  镜像名

docker 三件客 docker3.0_子网_02

 

  

docker 三件客 docker3.0_docker 三件客_03

 

 发布镜像到阿里云容器服务:

docker 三件客 docker3.0_redis_04

 

 

docker 三件客 docker3.0_docker 三件客_05

 Docker0网络:

ip中:.../20,前20位是网络号

2是外面linux的地址,docker0是外面的docker0(桥梁bridge)地址,docker启动后,docker0就出现了,容器之间的ping是都得通过docker0,新建的容器的ip也能在外面通过ip addr看到

通过ip地址,里外可以ping,容器间可以ping,但是通过名字没法访问:

docker 三件客 docker3.0_docker 三件客_06

 

 

docker 三件客 docker3.0_docker 三件客_07

 

 

docker 三件客 docker3.0_docker 三件客_08

 

 

docker 三件客 docker3.0_docker 三件客_09

 

docker0做gateway

 

docker 三件客 docker3.0_子网_10

 

 

docker 三件客 docker3.0_redis_11

查看网络详细信息

docker network ls

docker network inspect 网卡:

docker 三件客 docker3.0_redis_12

 

 如何通过名字ping

方式1: --link

 

docker 三件客 docker3.0_redis_13

 

 

docker 三件客 docker3.0_子网_14

 

 

docker 三件客 docker3.0_docker_15

 

桥接:1通过2(桥)和3连接

方式2:自定义网络:

docker 三件客 docker3.0_docker_16

 

 

docker 三件客 docker3.0_docker_17

 

 

docker 三件客 docker3.0_docker 三件客_18

 启动2个容器并加入到自定义网络mynet里面

 

docker 三件客 docker3.0_子网_19

 

 

docker 三件客 docker3.0_docker 三件客_20

 

 

docker 三件客 docker3.0_子网_21

 

跨网络连通:

docker 三件客 docker3.0_redis_22

 

 

docker 三件客 docker3.0_redis_23

 

 

docker 三件客 docker3.0_docker 三件客_24

Redis集群部署:

上面3个主机,下面3个从机,主机坏了从从机替换,此处对应6个容器,3个集群,脚本文件是创建1个子网,定义6个节点文件,启动6个节点并加入到子网中,

docker 三件客 docker3.0_docker 三件客_25

先创建一个子网 redis,${变量名}取出变量值,

往file中输入:

a

b

c

的命令是cat << EOF > file

a

b

c

EOF

0.0.0.0代表所有ip,bind它 表示不管访问本机的那个网卡的ip,都能访问到该 redis 服务器

cluster-enabled:开启集群模式

cluster-config-file:集群配置文件的名称

cluster-node-timeout:节点互连超时的阀值

announce..:该节点在集群内的地址

-p的对外映射对于集群没什么帮助

此处的集群内节点ip=容器ip(--ip设置)

 

 

#!/bin/bash
docker network create redis --subnet 172.38.0.0/16
for port in $(seq 1 6)
do
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF > /mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} -v /mydata/redis/node-${port}/data:/data -v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf -d --net redis --ip 172.38.0.1${port} redis:6.2-alpine3.16 redis-server /etc/redis/redis.conf
done

 

进入到一个节点

docker exec -it redis-1 /bin/sh

将这6个节点放到一个集群里,集群会自动分配这6个点为上图的3主3从

redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1

然后从该节点连接进入集群,并让一个主节点失效,测试高可用:

docker 三件客 docker3.0_docker 三件客_26

 

 

docker 三件客 docker3.0_docker 三件客_27

 

 SpringBoot微服务打包Docker镜像:

docker 三件客 docker3.0_子网_28