Docker中的网络和数据管理
-
Docker默认网络管理
-
查看Docker所有网络结果如下
$ docker network ls
-
演示默认的bridge网络管理方式
1.创建并启动容器,结果如下
$ docker run -itd --name=networktest ubuntu
2.使用网络查看指令查看详情
$ docker network inspect bridge
-
自定义bridge网络
1.使用指令创建bridge网络
$ docker network create --driver bridge isolated_nw
2.使用自定义网络启动容器
$ docker run --network=isolated_nw -itd --name=nwtest busybox
3.创建后再次查看所有网络
4.创建自定义网络后,使用该网络启动一个容器
$ docker run --network=isolated_nw -itd --name=nwtest busybox
5.查看启动该容器后的网络详情
$ docker inspect nwtest
6.为容器添加网络管理方式后再次查看网络详情
$ docker network connect bridge nwtest\
$ docker inspect nwtest
7.断开容器的网络连接
$ docker network disconnect isolated_nw nwtest
8.移除自定义网络
$ docker network rm isolated_nw
9.移除后再次查看网络详情,没有了isolated_nw
-
容器之间互相通信
1.创建两个默认使用bridge网络容器
$ docker run -itd --name=comtainer1 busybox
$ docker run -itd --name=comtainer2 busybox
2.创建一个使用自定义的isolated_nw网络(需要提前创建)
$ docker run --network=isolated_nw -itd --name=container3 busybox
3.为container2容器增加一个自定义的网络isolater_nw网络连接
$ docker network connect isolated_nw container2
4.进入容器2,用ifconfig命令查看网络地址,容器2为172.17.0.3
$ docker attach container2
5.分别进入容器1和3查看ip地址容器1为172.17.0.5,容器3为172.19.0.2
6.容器通信测试。进入容器后使用ping命令
创建Docker Swarm集群
准备工作:
创建三台虚拟机,并在每太虚拟机上都安装docker1.12以上的版本且ip与主机名的设置如下
manager1 | 192.168.10.129 |
worker1 | 192.168.10.131 |
worker2 | 192.168.10.132 |
1.在名为manager1的的机器上创建Docker Swarm集群
$ docker swarm init --advertise-addr 192.168.10.129
2.查看节点信息
$ docker node ls
3.把worker1heworker2添加到管理节点中(此处的指令为自己创建Docker Swarm时生成的指令)
$ docker swarm join --token SWMTKN-1-6diivm6rvmmdkxr1y03mw8exynbv70kypls99h87y0ditihhjx-1f7ar4k6x937a84tww46cj34w 192.168.10.129:2377
4.再次在管理节点上查看查看集群信息
$ docker node ls
5.向Docker集群部署服务
$ docker service create --replicas 1 --name=helloworld alpine ping docker.com
6.查看当前集群中的服务列表
$ docker service ls
7.查看已经部署的服务详情
$ docker service inspect helloworld
8.查看指定节点上的非配和运行情况
$ docker service scale helloworld=5
9.删除服务
$ docker sercive rm helloworld
10.在集群管理节点上查看网络列表
$ docker network ls
11.在管理节点上创建以overlay为驱动的自定义网络
$ docker network create --driver overlay my-multi-host-network
12.在管理节点上再次部署服务
$ docker service create --network my-multi-host-network --name my-web --publish 8080:80 --replicas 2 nginx
13.查看副本的运行情况
$ docker service ps my-web
14.在宿主机访问ip+8080
-
Volumes数据卷管理
1.创建数据卷
$ docker volume create my-vol
2.查看数据卷
$ docker volume ls
3.检查数据卷
$ docker volume inspect my-vol
4.删除数据卷
$ docker volume rm my-vol
5.查看本机容器
$ docker ps -a
6.查看本机数据卷
$ docker volume ls
7.查看Docker在本机上的文件系统目录
8.启动容器并挂载数据卷
$ docker run -d -it --name devtest --mount source=myvol,target=/app busybox:latest
9.再次查看本机容器和数据卷
10.查看容器详情
11.再次确认本机文件目录