Docker基础-16-网络-Linux网络命名空间

       前面学习的Docker一些知识真的是基础中的基础,镜像的制作过程,简单的Dockerfile你会写一些,镜像的操作和容器操作那几个常见的命令也基本上都介绍过了。如果你知识想简单了解并玩一玩Docker,到这里,差不多学习完了。接下来几篇文章,我们重点来学习Docker里面的网络模块。学习Docker,先学习镜像操作,然后学习容器操作,剩下的网络和存储的部分,学习是有一点困难的。学习网络和存储,需要一些网络和文件系统的专业的知识,其实更加需要linux的知识。我们先学习Docker的网络部分,慢慢学习,我们毕竟只需要学习基础就好。

本篇,先介绍Docker网络有哪几种模式,然后解释多个容器之间的通信如何实现,以及一个容器为什么可以连接外部的英特网。

 

Docker网络

 

在Docker中,网络有单机网络和多机网络区分。在单机网络又有几种网络模式或者接口,请看下图。

我们重点学习单机网络,而且重点学习Bridge Network这个类型。这几种分类,这里不介绍,后面慢慢来学习。在本篇,知道有这几种网络模式就好了。

 

网络通信方式

在网络中,两台不同的节点是通过数据包来通信。不管是发送请求还是接收响应,都是数据包的形式。

 

网络分层

网络分层用下面一张图来表示,这个网络专业同学可能记得比较清楚,这里先放一张图这里,把一些概念,名词拿出来,后面文章可能需要用到。

网络中几个重要的名词

  1. 路由
  2. IP地址
  3. 端口
  4. 公有IP和私有IP
  5. 网络地址转换NAT
  6. Ping
  7. telnet

这里说下Ping和telnet这两个命令,Ping是验证IP是否可达,telnet是验证服务的可用性。举例来解释这句话意思,你电脑能不能上网,你可能会在命令输入ping baidu.com,如果接收数据正常,说明你电脑能上百度。这个过程验证了你电脑到百度服务器的IP,两者之间是可达的。假如,百度服务器有一个服务的端口是8090,地址和baidu.com一样。这个时候你就可以输入telnet来验证你机器是否能访问这个百度的8090这个服务,以上都是在linux环境下。

 

Linux网络命名空间

命名空间对应英文单词就是namespace,在linux机器上,关于网络网卡,你可能看到过eth0 eth1等,这个eth0指的是使用了eth0这块网卡,还有这个机器的IP地址和MAC地址,这些信息其实就是网络命名空间。

 

我们来启动一个busybox的容器,看看网络命名空间具体一些信息。

如果你Docker机器环境没有拉取busybox,你先去pull一个到本地,为了方便我们练习,这里介绍一个让容器一直运行的命令。

docker run -d --name=test1 busybox /bin/sh -c "while true; do sleep 3600; done"

上面参数-c 其实就是一个shell脚本代码,如果为真,睡眠3600秒,其实就是一个无限循环,这个容器一直在UP状态,方便我们操作这个容器。

下面输入ip a 或者ip addr就能或者这个test1容器的网络命名空间信息。

这个ip是一个在busybox镜像已经安装好的软件,如果是centos,你可以通过yum install ip来安装这个组件。这个linux网络命名空间有什么用呢,就是用来隔离多个容器的网络命名空间,下篇我们来学习Docker里面的网络命名空间和本机linux网络命名空间有什么关系。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值