Docker 网络模型

发布于 2021-05-21 12:03:21 字数 1744 浏览 1271 评论 0

一、Docker 本地网络类型

1、查看支持网络类型

docker network ls

[root@izuf61z952szxgixgccuagz yaok]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
252de78eda8f        bridge              bridge              local
06862bdd614e        host                host                local
51ca07926a04        none                null                local

2、测试使用各类网络类型

docker run network=xxx

bridge(常用):默认模式相当于NAT
host:公用宿主机Network NameSapce(网络层不隔离)
none:无网络模式
container(k8s中):与其他容器公用Network NameSapce

二、Docker 跨主机网络类型

1、macvlan 实现

缺点是只能在虚拟网络里互相访问。容器不能访问外网,同时外网也不能访问到容器。

docker network create --driver macvlan --subnet=10.0.0.0/24 --geteway=10.0.0.254 -0 parent=eth0 macvlan1

ip link set eth0 promsic on (ubuntu或其他版本需要)

docker run -it --network macvlan1 --ip=10.0.0.1 center:6.9 /bin/bash

2、overlay 实现

每个容器有两块网卡 容器内eth0与docker0关联,访问外网/提供的服务(端口映射) 容器内eth1跨主机容器通信使用

1、启动 consul 服务,实现网络的统一配置管理

统一配置关联服务容器
docker run -d -p 8500:8500 -h consul progrium/consul -server -bootstrap

//consul:kv类型的存储数据库(key:value)

docker01、docker02上:
vim /etc/docker/daemon.json
{
    "host":["tcp://0.0.0.0:2376","unix:///var/run/docker.sock"],
    "cluster-store":"consul://10.0.0.100:8500",
    "cluster-advertise":"10.0.0.100:2376"
}

systemctl daemon-reload
systemctl restart docker

2、创建 overlay 网络

docker network create -d overlay --subnet 172.16.0.0/24 --geteway 172.16.0.254 ol1

3、启动容器测试

docker run -it --network ol1 --name testoverlay centos /bin/bash
//每个容器有两块网卡,eth0实现容器间的通讯,eth1实现容器访问外网

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文