微服务架构基础------Docker中的网络与数据管理
一、Docker网络管理
1.1.Dcoker默认网络管理
docker安装时自动创建三种网络。客户端可以通过网络管理指令查看。
docker network ls
下面通过一个示例来演示默认的birdge网络管理方式
(1)创建并启动容器 docker run -itd --name=networktest ubuntu
(2)使用网络查看指令查看网络详情 docker network inspect bridge
1.2自定义网络介绍
(1).Bridge networks
(2).Overlay network in swarm mode
(3).Custome network plguins
1.3自定义bridge网络
(1)创建自定义网络 docker network create --driver bridge isolated_nw
(2)使用自定义网络启动容器 docker run --network=isolated_nw -itd --name=nwtest busybox
(3)为容器添加网络管理 docker network connect bridge nwtest
(4)断开容器网络连接 docker network disconnect isolated_nw nwtest
(5)移除自定义网络 docker network rm isolated_nw 执行命令后会返回网络名称
1.4容器之间的网络通信
(1)创建容器
【1】创建两个默认的bridge网络的容器
docker run -itd --name=container1 busybox / docker run -itd --name=container2 busybox
【2】创建一个使用自定义的isolated_nw 网络的容器 docker run --network=isloated_nw -itd --name=container3 busybox
【3】为container2添加一个isolated-nw 网络连接 docker network connect isolated_nw container2
(2)容器地址查看 首先进入container2容器 docker attach container2 然后使用ifconfig命令查看
分别查看其余两个容器地址
(3)容器通信测试
进入容器1,ping容器3 失败,容器在不同网络环境下无法通信
然后进入容器2,用容器IP连接容器1容器3通信测试。 成功。
结论:不同容器必须在同一网络环境下通信。默认网络管理的容器可以用ip进行通信,无法用容器名称通信,自定义的可以
二、Docker Swarm 集群
1.docker swarm使用
(1)环境搭建 准备三台Ubuntu,docker版本1.2以上,ip地址固定,TCP端口2377,7946,4789开放。
ip地址如下:
manger1:192.168.10.222
manger2:192.168.10.223
manger3:192.168.10.224
(2)创建docker swarm集群
【1】在manger1上创建docker swarm集群 docker swarm init --advertise-addr 192.168.10.222
图中红框表示用来添加work节点命令
【2】在管理节点用docker node ls 查看
(3)向docker swarm 集群添加工作节点
【1】启动另外两台docker机器 --token后的参数自己生成每个人不一
【2】再次查看
(4)向docker swarm集群部署服务 docker service create --replicas 1 --name helloworld alpine ping docker.com
(5)查看dockerswarm 集群的服务
【1】用 docker service ls查看
【2】查看具体详情
【3】查看运行和分配情况
(6)更改docker swarm集群服务副本数量 docker service scale helloworld=5
查看
(7)删除服务 对于不需要的服务,使用 docker service rm helloworld 进行删除,会返回服务名称
(8)访问服务
【1】在管理节点上执行图中命令查看网络列表
【2】在管理节点上创建overlay的自定义网络。
docker network create --driver overlay \ my-multi-host-network
【3】再次部署 docker service create \ --network my-multi-host-network \ --name my-web \ --publish 8080:80 \ --replicas 2 \ nginx
【4】使用图示命令查看服务副本运行情况
【5】外界访问服务 打开浏览器使用任意一台机器节点IP急+8080进行服务访问
三、Volumes数据卷管理
1.数据卷的使用
【1】创建数据卷 docker volume create my-vol
【2】查看数据卷 docker volume ls
【3】核查数据卷 docker volume inspect my-vol
【4】删除数据卷 docker volume rm my-vol 删除成功后返回数据卷名称
2.启动容器并加载数据卷
【1】查看本机容器和数据卷
【2】确认本机docker文件系统中的容器和数据卷
【3】启动容器并挂载数据卷
docker run -d \ -it \ --name devtest \ --mount source=myvol,target=/app \ busybox:latest
【4】再次查看
【5】检查容器详情 使用docker inspect devtest查看容器详情
【6】再次确认本机文件系统中的容器和数据卷
可以看出,新建的容器数据卷已自动生成在本地文件目录中.