1.Docker网络类型(插件形式)
none:不为容器配置任何网络功能
docker run -it --network none alpine:3.9
--network=none Container:与另一个运行中的容器共享Network
docker run -it --network container:13b3564867d1 alpine:3.9
--network=container:containerID(K8S) Host:与宿主机共享Network
docker run -it --network=host alpine:3.9
--network=host 性能最高 Bridge:Docker设计的NAT网络模型 默认类型
创建一个网卡
docker network create -d bridge --subnet 172.22.0.0/24 --gateway 172.22.0.1 oldboy
2.跨宿主机之间的通讯(macvlan)
默认一个物理网卡,只有一个物理mac地址,虚拟多个mac地址
1.创建macvlan网络
docker network create --driver macvlan --subnet 10.0.0.0/24 --gateway 10.0.0.254 -o parent=eth0 macvlan_1
2.设置eth0的网卡为混杂模式
ip link set eth0 promisc on
3.创建使用macvlan网络的容器
docker run -it --network macvlan_1 --ip=10.0.0.200 busybox
3.跨宿主机之间的通讯(overlay)
- docker03上: consul存储ip地址的分配
1.启动docker——progrium_consul镜像
docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap
2.配置docker01和docker02的配置文件
{
"cluster-store": "consul://10.0.0.13:8500",
"cluster-advertise": "10.0.0.11:2376"
}
3.创建一个overlay网卡(此时两台宿主机都会创建)
docker network create -d overlay --subnet 172.16.2.0/24 --gateway 172.16.2.254 ol1
4.在docker01 docker02上启动容器测试ip
docker run -it --network ol2 --name testd alpine:3.9
4.使用prometheus+grafana监控docker
- 1.增加node节点
上传docker_monitor_node.tar.gz
启动node-exporter
docker run -d -p 9100:9100 -v "/:/host:ro,rslave" --name=node_exporter quay.io/prometheus/node-exporter --path.rootfs /host
- 2.启动cadvisor
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 --detach=true --name=cadvisor google/cadvisor:latest
- 3.配置prometheus监控
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'cadvisor'
static_configs:
- targets: ['10.0.0.11:8080','10.0.0.12:8080']
- job_name: 'node-exporter'
static_configs:
- targets: ['10.0.0.11:9100','10.0.0.12:9100']
- 链接grafana出图
网友评论