当前位置: 首页 > news >正文

08-Docker-网络管理

Docker 在网络管理这块提供了多种的网络选择方式,他们分别是桥接网络主机网络覆盖网络MACLAN 网络无桥接网络自定义网络

1-无桥接网络(None Network)

当使用无桥接网络时,容器不会分配 IP 地址,也不会连接到主机网络。这对于特殊应用或需要完全手动配置网络设置的情况有用。在这个容器下,除了lo本地环回网络,不会有其他的网卡,一些对安全性比较高并且不需要联网的应用可以使用none network网络。
一般来说使用none network的情况并不多,特殊应用或需要完全手动配置网络设置的情况有用。

2-主机网络(Host Network)

使用主机网络时,容器与主机共享网络命名空间,它们使用主机的网络堆栈,不需要 NAT(网络地址转换)。这可以提高容器访问网络资源的性能,但可能会引入一些安全风险,因为容器共享主机的网络栈。
使用host network需要考虑端口冲突问题,有些已经host上已经使用的端口,就无法再使用了。
image.png

3-桥接网络(Bridge Network)

桥接网络是 Docker 中最常用的网络类型。在桥接网络中,每个容器分配一个唯一的 IP 地址,容器可以相互通信,也可以通过主机进行外部网络通信。这是默认的网络类型。
我们通过如下命令可以看到桥接网络的相关设置:

docker network inspect bridge

image.png
1698854671413.png
可以看到桥接网络的子网是172.17.0.0/16,容器分配的 IP 有172.17.0.3172.17.0.4容器之间可以相互通信。
通过brctl,可以管理 Linux 的桥接设备,centos中下载方式与使用方式如下:

#下载方式
sudo yum install bridge-utils  # 对于 CentOS 6
sudo dnf install bridge-utils  # 对于 CentOS 8 或 Fedora
#显示桥接设备
brctl show

image.png
可以看到容器中网卡的一端是挂载在桥接网卡docker0上的,通过这种形式实现网络链接的目的。

4-用户定义网络(Custom Network)

我们可以根据业务需求,自己定义相关的网络,docker提供了三种用户定义网络驱动,它们分别是:bridgeoverlaymacvlan。其中overlaymacvlan用于创建跨主机的网络。
我们可以使用如下命令来创建一个自定义网络,其子网为 192.168.0.0/24, 网关为192.168.0.1,容器网络名为net_2

docker network create --subnet 192.168.0.0/24 --gateway 192.168.0.1 --driver bridge net_2

继而使用net_2网络创建两个新的容器,创建容器命令如下

docker run -it --network=net_2 --name=ub1 ubuntu /bin/bash
docker run -it --network=net_2 --name=ub2 ubuntu /bin/bash

在新的容器中安装网络查看及ping命令,可以获取如下网络信息

apt-get install -y net-tools
apt-get install -y iputils-ping

image.png
image.png
彼此之间可以ping通,实现自定义网络的通信。image.png
使用docker ps,可以看到使用系统自定义的桥接网络容器700b,进入容器后发现他使用的是172.17.0.0/12网段。
image.png
若想使得桥接网络与自定义网络容器之间可以通信,除了关注防火墙路由转发之外,还需要使用如下命令:

docker network connect net_2 700b

此时再进入容器,会发现容器中多了一个网卡,并且可以与不同网段之间容器进行通信。
image.png

http://www.lryc.cn/news/214810.html

相关文章:

  • 【VS Code】使用 VS Code 登陆远程服务器上的 Docker 容器
  • 用Python做数据分析之数据统计
  • 智慧工地建造平台源码、智慧化工地云平台源码
  • Spring Cloud Alibaba中Nacos的安装(Windows平台)以及服务的发现
  • QR码应用实战:Spring Boot与ZXing完美结合
  • Leetcode刷题详解——两两交换链表中的节点
  • Openssl数据安全传输平台019:外联接口类的封装以及动态库的制作 - Bug未解决,感觉不是代码的问题
  • YOLO目标检测——安全帽佩戴检测数据集【含对应voc、coco和yolo三种格式标签】
  • P4345 [SHOI2015] 超能粒子炮·改 题解---------Lucas定理
  • http代理和ip代理的区别,代理IP带来了哪些好处?
  • 浅谈电动汽车充电桩检测技术的实现
  • 20 分钟搭建一个串流服务器
  • Android ActivityLifecycleCallback使用
  • 力扣labuladong——一刷day14
  • 循环神经网络(RNN)与长短期记忆网络(LSTM)
  • ArxDbgDocLockWrite 类简介
  • 【教3妹学编辑-算法题】环和杆
  • 解决 eslint 的 Parsing error: Unexpected token 错误
  • VR全景技术在文化展示与传播中有哪些应用?
  • Linux shell编程学习笔记19:until循环语句
  • (CV)论文列表
  • 恶意软件防范和拦截: 提供防范恶意软件攻击的策略
  • 单例模式浅析
  • Springboot引入mybatis-plus及操作mysql的json字段
  • springboot读取application.properties中文乱码问题
  • SAML- 安全断言标记语言
  • 【佳学基因检测】Node.js中http模块的使用
  • 前端基础之JavaScript
  • [GDOUCTF 2023]<ez_ze> SSTI 过滤数字 大括号{等
  • C/C++奇数求和 2021年3月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析