Docker网络管理
docker默认使用bridge(单主机互联)和overlay(可跨主机互联)两种网络驱动进行容器的网络管理,如果需要,还可以自定义网络驱动进行docker容器的网络管理
1、 Docker默认网络管理
(1) 查看网络
docker network ls
从图中看出docker默认三种网络分别为bridge,host,none。其中bridge就是默认的驱动网络,配置后可以与宿主机通信。
(2)创建并启动容器
在后台启动镜像名称为ubuntu,容器名字为networktest
(3)查看网络详情
docker network inspect bridge
2、 自定义网络介绍
虽然docker提供的默认网络使用比较简单,但为了保证容器中应用的安全,实际开发中推荐使用自定义的网络进行容器管理
2.1、bridge network(桥接网络)
2.2、overlay network in swarm mode(swarm集群中的覆盖网络)
2.3、custom network plugins(定制插件网络)
3、 自定义bridge网络
(1)创建自定义网络
(2)使用自定义网络启动容器
(3)为容器添加网络管理
(4)断开容器网络连接
docker network disconnect isloated_nw nwtest
(5)移除自定义网络
docker network rm isloated_nw
4、 容器之间的通信
(1)创建两个使用默认bridge网络的容器
(2)创建一个使用自定义网络(自己创建)的容器,且为container2容器新增一个自定义网络连接
(3)容器地址查看
(4)容器通信测试
不同容器间通信必须在同一网络环境,使用默认bridge网络管理可以使用容器ip通信,但无法使用容器名通信,使用自定义网络管理的容器可以使用ip也可以使用容器名称通信
docker run -itd --name=container4 --link container1:c1 busybox
创建并启动一个container4容器,–link container1:c1 将container4连接到container1且为container重命名c1
Docker Swarm集群
1、创建docker swarm 集群
1.1 创建 docker swarm集群
docker swarm init --advertise-addr 192.168.10.130
1.2 查看节点信息
docker node ls
2、向集群添加节点
2.1 向另外两台主机添加,执行创建集群时生成的命令,(如1.1)
2.2 查看集群节点
为了方便区分主机,可以先更改主机名字
3、向集群部署服务
3.1 创建服务
docker service create --replicas 1 --name helloworld alpine ping docker.com
4、查看集群服务
4.1查看服务
docker service ls
4.2 查看指定服务分布情况
5、更改集群服务数量
docker service scale helloworld=5
查看服务运行情况
6、访问服务
6.1查看网络列表
6.2 在主节点创建以overlay为驱动的自定义网络
docker network create --driver overlay my-multi-host-network
6.3在节点部署服务
docker service create --network my-multi-host-network --name my-web --publish 8080:80 --replicas 2 ngix
6.4查看服务的两个服务副本运行情况
6.5外界访问
Docker数据管理
1、docker数据存储方式
2、volumes数据卷使用
2.1 创建数据卷
docker volume create my-vol
2.2 查看数据卷
docker volume ls
2.3 核查数据卷
3、启动并加载数据卷
3.1 查看本机docker文件系统中的容器和数据卷(root用户)
3.2 启动容器并加载数据卷
两种方式
–mount
比-v详细,键的顺序可以随意,更容易理解
-v
必须有顺序,不能打乱
3.3 查看容器和数据卷
使用docker inspect查看详细信息
3.4 在本机文件系统查看数据卷he容器
根据容器和数据卷id对应查看