Docker中的网络与数据管理

Docker网络管理
一.Docker默认网络管理
列举Docker中的所有网络
–docker network ls
Docker中的网络与数据管理
(1)创建并启动容器
–docker run -itd --name=networktest ubuntu
Docker中的网络与数据管理
(2)使用网络查看指令查看网络详情
–docker network inspect bridge
Docker中的网络与数据管理
Docker中的网络与数据管理
二.自定义bridge网络
1.创建自定义网络
–docker network create --driver bridge isolated_nw
Docker中的网络与数据管理
2.使用自定义网络启动容器
–docker run --network=isolated_nw -itd --name=nwtest busybox
Docker中的网络与数据管理
使用网络查看指令查看启动后的容器网络详情
–docker inspect nwtest
Docker中的网络与数据管理
Docker中的网络与数据管理
3.为容器添加网络管理
–docker network connect bridge nwtest
Docker中的网络与数据管理
使用网络查看指令查看启动后的容器网络详情
–docker inspect nwtest
Docker中的网络与数据管理
Docker中的网络与数据管理
Docker中的网络与数据管理
4.断开容器网络连接
–docker network disconnect isolated_nw nwtest
Docker中的网络与数据管理
5.移除自定义网络
–docker network rm isolated_nw
Docker中的网络与数据管理
三.容器之间的网络通信
1.创建容器
(1)创建两个使用默认的bridge网络的容器
–docker run -itd --name=container1 busybox
–docker run -itd --name=container2 busybox
Docker中的网络与数据管理
(2)创建一个使用自定义的isolated_nw网络的容器
–docker run --network=isolated_nw -itd --name=container3 busybox
Docker中的网络与数据管理
(3)为container容器新增一个自定义的isolated_nw网络连接
–docker network connect isolated_nw container2
Docker中的网络与数据管理
2.容器地址查看
首先,进入container2容器
–docker attach container2
然后,使用ifconfig指令查看当前容器被动态分配的IP地址
Docker中的网络与数据管理
进入container1容器,使用ifconfig指令查看当前容器被动态分配的IP地址
–docker attach container1
Docker中的网络与数据管理
进入container3容器,使用ifconfig指令查看当前容器被动态分配的IP地址
–docker attach container3
Docker中的网络与数据管理
3.容器通信测试
首先,进入container1容器,使用ping指令连接container2和container3来查看是否能通信
Docker中的网络与数据管理
接着,进入container2容器,使用ping指令连接container1和container3进行通信测试,效果如图所示
Docker中的网络与数据管理
Docker中的网络与数据管理
Docker Swarm集群
一.Docker Swarm的使用
1.环境搭建
(1)准备三台Ubuntu系统主机
(2)集群管理节点Docker机器的IP地址必需固定,集群中的所有节点都能访问管理结点
Docker中的网络与数据管理
manager1
Docker中的网络与数据管理
Docker中的网络与数据管理
Docker中的网络与数据管理
Docker中的网络与数据管理
Docker中的网络与数据管理
worker1
Docker中的网络与数据管理
Docker中的网络与数据管理
worker2
Docker中的网络与数据管理
Docker中的网络与数据管理
Docker中的网络与数据管理
(3)集群节点之间必需使用相应的协议并保证以下端口号可用
Docker中的网络与数据管理
Docker中的网络与数据管理
2.创建Docker Swarm集群
(1)在名为manager1的Docker机器上创建Docker Swarm集群
–docker swarm init --advertise-addr 192.168.197.143
Docker中的网络与数据管理
(2)在管理节点上,使用指令查看集群节点信息
–docker node ls
Docker中的网络与数据管理
3.向Docker Swarm集群添加工作节点
(1)启动另外两台Docker机器work1和work2,分别打开终端窗口,然后向集群中加入工作节点的指令
–docker swarm join --token
SWMTKN12arykxeyru8qruxwhjpjv1lsy9tgnk1q4f9qx598pqxsv9t6cq-5phvvmqxxvq9ttji31b3eu30v 192.168.197.143:2377
Docker中的网络与数据管理Docker中的网络与数据管理
(2)再次在集群管理节点上使用指令查看集群节点信息
–docker node ls
Docker中的网络与数据管理
4.向Docker Swarm集群部署服务
拉取镜像
–docker pull alpine
Docker中的网络与数据管理
使用Docker上自带的alpine镜像为例来部署集群服务
–docker service create --replicas 1 --name helloworld alpine ping docker.com
Docker中的网络与数据管理
5.查看Docker Swarm集群中的服务
(1)服务部署完成后,在管理节点上查看当前集群中的服务列表信息
–docker service ls
Docker中的网络与数据管理
(2)查看部署的服务具体详情
–docker service inspect helloworld
Docker中的网络与数据管理
(3)查看指定服务在集群节点上的分配和运行情况
–docker service ps helloworld
Docker中的网络与数据管理
6.更改Docker Swarm集群服务副本数量
在管理节点manager1上,更改服务副本数量
–docker service scale helloworld=5
Docker中的网络与数据管理
查看这5个服务副本在3个节点上的具体分布和运行情况(状态都是Running)
–docker service ps helloworld
Docker中的网络与数据管理
7.删除服务
–docker service rm helloworld
Docker中的网络与数据管理
8.访问服务
(1)在集群管理节点manager1上,查看网络列表
–docker network ls
Docker中的网络与数据管理
(2)在集群管理节点manager1上,创建以overlay为驱动的自定义网络(my-multi-host-network)
–docker network create
–driver overlay
my-multi-host-network
Docker中的网络与数据管理
(3)在集群管理节点manager1上,再次部署服务
–docker service create
–network my-multi-host-network
–name my-web
–publish 8080:80
–replicas 2
nginx
Docker中的网络与数据管理
(4)在集群管理节点manager1上,查看服务的两个服务副本运行情况
–docker service ps my-web
Docker中的网络与数据管理
(5)外界访问服务(IP+8080)
Docker中的网络与数据管理
Docker中的网络与数据管理
Docker中的网络与数据管理
二.Volumes数据卷管理使用
1.创建并管理数据卷
(1)创建名为my-vol的数据卷
–docker volume create my-vol
Docker中的网络与数据管理
(2)查看数据卷
–docker volume ls
Docker中的网络与数据管理
(3)核查数据卷
–docker volume inspect my-vol
Docker中的网络与数据管理
(4)删除数据卷
–docker volume rm my-vol
2.启动容器并加载数据卷
(1)查看本机容器和数据卷
–docker ps -a
Docker中的网络与数据管理
–docker volume ls
Docker中的网络与数据管理
(2)认查看本机Docker文件系统中的容器和数据卷
–cd /var/lib/docker
–ll
Docker中的网络与数据管理
(3)启动容器并挂载数据卷
–docker run -d
-it
–name devtest
–mount source=myvol,target=/app
busybox:latest
Docker中的网络与数据管理
(4)再次查看本机容器和数据卷列表
–docker ps
Docker中的网络与数据管理
–docker volume ls
Docker中的网络与数据管理
(5)检查容器详情
–docker inspect myvol
Docker中的网络与数据管理
(6)再次确认本机Docker文件系统中的容器和数据卷
–cd /var/lib/docker/
–cd containers/
–ll
Docker中的网络与数据管理
–cd …
–cd volumes/
–ll
Docker中的网络与数据管理
出现问题:
1.使用自定义网络启动容器时出现错误,没有”busybox:lastest”镜像
Docker中的网络与数据管理
2.不能进入container容器内部
Docker中的网络与数据管理
3.使用Docker上自带的alpine镜像为例来部署集群服务之前要拉取镜像,拉取镜像时出现问题
Docker中的网络与数据管理
解决方案:
1.连接的网络不好,更换网络即可
2.第一次退出时“ctrl+c”为退出并关闭,重新开启容器即可
Docker中的网络与数据管理
3.连接的网络不好,更换网络即可

作者:胥自扬