Docker网络基础之单机原理

基本原理

单机版多容器实例网络交互原理

  • 在宿主机上面打开两张网卡eth0与eth1,打通两张网卡的链路
  • 在test1上面启动一个veth网卡,创建一个namespace;并桥接到eth0上面
  • 在test2上面启动一个veth网卡,创建一个namespace;并桥接到eth1上面
  • 对test1与test2进行地址配置
  • 测试网络交互情况

模拟实验

添加两个namespace

[[email protected]2 ~]# ip netns add test1
[[email protected]-2 ~]# ip netns add test2

查看添加状况

[[email protected]2 ~]# ip netns list
test2
test1

[[email protected]-2 ~]# ip netns exec test1 ip addr
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
[[email protected]-2 ~]# ip netns exec test2 ip addr
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    PS:这里可以看到namespace还没有mac地址

添加一对虚拟网卡

[[email protected]2 ~]# ip link add veth-test1 type veth peer name veth-test2

对虚拟网卡与namespace做捆绑

[[email protected]2 ~]# ip link set veth-test1 netns test1
[[email protected]-2 ~]# ip link set veth-test2 netns test2

对namespace中的虚拟网卡做地址设定,并激活

[[email protected]2 ~]# ip netns exec test1 ip addr add 10.1.1.100/24 dev veth-test1
[[email protected]-2 ~]# ip netns exec test2 ip addr add 10.1.1.200/24 dev veth-test2
[[email protected]-2 ~]# ip netns exec test1 ip link set dev veth-test1 up
[[email protected]-2 ~]# ip netns exec test2 ip link set dev veth-test2 up

查看设置的状况

[[email protected]2 ~]# ip netns exec test1 ip addr
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
9: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether f2:c2:eb:2b:08:d6 brd ff:ff:ff:ff:ff:ff link-netnsid 1
    inet 10.1.1.100/24 scope global veth-test1
       valid_lft forever preferred_lft forever
    inet6 fe80::f0c2:ebff:fe2b:8d6/64 scope link
       valid_lft forever preferred_lft forever

[[email protected]-2 ~]# ip netns exec test2 ip addr
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
8: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 5e:06:df:2b:3d:fe brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.1.1.200/24 scope global veth-test2
       valid_lft forever preferred_lft forever
    inet6 fe80::5c06:dfff:fe2b:3dfe/64 scope link
       valid_lft forever preferred_lft forever

测试实验结果

[[email protected]2 ~]# ip netns exec test1 ping 10.1.1.200
PING 10.1.1.200 (10.1.1.200) 56(84) bytes of data.
64 bytes from 10.1.1.200: icmp_seq=1 ttl=64 time=0.141 ms
^C
--- 10.1.1.200 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.141/0.141/0.141/0.000 ms

原文地址:https://www.cnblogs.com/guge-94/p/11082108.html

时间: 2024-10-11 16:00:21

Docker网络基础之单机原理的相关文章

网络基础七层原理(重点)

网络基础七层原理一.什么是网络基础七层原理二.七层模型的起源三.七层模型的原理和协议四.七层模型有何用处1.七层模型,亦称OSI(Open System Interconnection).参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型.它是一个七层的.抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议.2.OSI的大部分设计工作实际上只是Honeywell Information System 公司的一个小组完成的,

Docker网络基础

大量的互联网应用服务包括多个服务组件,这往往需要多个容器之间通过网络通信进行相互配合. Docker目前提供了映射容器端口到宿主主机和容器互联机制来为容器提供网络服务. 端口映射实现访问容器: 在启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的. 从外部访问容器应用: 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p参数来指定端口映射.当使用-P标记时,Docker会随机映射49000~49900中的端口至容器内部开放的网络端口. 小

docker 网络基础

-p可以多次使用 安装 ifconfig yum -y install net-tools Docker 目前提供了映射容器端口到宿主机和容器互联机制来为容器提供网络服务. 端口映射实现访问容器 : 1.从外部访问容器应用 当容器启动时如果不指定对应参数,外部网络是无法通过网络访问容器的. 参数: -P : docker会随机映射一个宿主机的49000~49990的端口到容器expose指定的端口 docker run -t -P --expose 22 --name test centos -

Docker网络基础配置

简介 大量的互联网应用服务包括多个服务组件,这往往需要多个容器之间通过网络通信进行相互配合. Docker 目前提供了映射容器端口到宿主主机和容器互联机制来为容器提供网络服务. 本文将讲解如何使用Docker的网络功能.包括使用端口映射机制来将容器内应用服务提供给外部网络,以及通过容器互联系统让多个容器之间进行快捷的网络通信. 端口映射实现容器访问 从外部访问容器应用 在启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的. 当容器中运行一些网络应用,要让外

【Linux网络基础】上网原理流程

1. 局域网用户上网原理 上网过程说明: 确保物理设备和线路架构准备完毕,并且线路通讯状态良好 终端设备需要获取或配置上局域网(私有地址)地址,作为局域网网络标识 当终端设备想上网时,首先确认访问的地址,是否在本局域网内,若不在需要先告知网关 网关地址配置在路由器的内网接口上,路由器根据请求,将流量进行路由转发给外网设备,让外网设备协助进行流量转发. 需要注意:家用路由器实际上并不是路由器,而是一个NAT地址转换设备. 猫等运营商设备通过获取路由器的拨号信息,将信息进行上传,确认无误后,便可建立

Docker 学习笔记【2】 Docker 基础操作实,Docker仓库、数据卷,网络基础学习

Docker 学习笔记[3] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,实操 网络基础  ---------高级网络配置和部分实战案例学习 ============================================================= Docker 学习笔记[1]Docker 相关概念,基本操作--------实操记录开始 ============================================================= 被

“深入浅出”来解读Docker网络核心原理

前言 之前笔者写了有些关于dokcer的各种相关技术的文章,唯独Docker网络这一块没有具体的来分享.后期笔者会陆续更新Docker集群以及Docker高级实践的文章,所以在此之前必须要和大家一起来解读一下Docker网络原理.认真看下去你会有收获的. ?在深入Docker内部的网络原理之前,我们先从一个用户的角度来直观感受一下Docker的网络架构和基本操作是怎么样的. Docker网络架构 ?Docker在1.9版本中(现在都1.17了)引入了一整套docker network子命令和跨主

史上最详细的原理+实验——Linux Centos7 网络基础设置

一.网络基础设置 1.ifconfig 查看网卡详细信息 ifconfig :查看ip地址信息mtu 1500 数据包字节inet 192.168.17.134 :ip地址netmask 255.255.255.0 :子网掩码broadcast 192.168.17.255:广播地址inet6 fe80::e3c7:14af:6e4d: ipv6地址ether 00:0c:29:c9:dd:05 :mac地址lo: flags回访网卡 2.hostname查看主机名 hostnamectl se

docker网络

一. Docker 中的网络功能介绍 默认情况下,容器可以建立到外部网络的连接,但是外部网络无法连接到容器. Docker 允许通过外部访问容器或容器互联的方式来提供网络服务 外部访问容器: 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过  -P  或  -p  参数来指定端口映射.(当使用–P(大写)标记时,Docker 会随机映射一个随机的端口到内部容器开放的网络端口.) 注意:-P使用时需要指定--expose选项或dockerfile中用expose指定容器要暴露的端口