《Kubernetes网络权威指南》读书笔记 - 最常用的Docker网络技巧

书籍来源:《Kubernetes网络权威指南:基础、原理与实践》

一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:《Kubernetes网络权威指南》读书笔记 | 汇总_COCOgsta的博客-CSDN博客


本节将简单介绍Docker中的网络配置、网络端口映射、容器互联、DNS配置等实战知识。

2.3.1 查看容器IP

查看一个正在运行的容器被分配了什么IP地址,一般有两种方式:从外面看和从里面看。从外面看即使用docker inspect命令:

其实也等价于:

从里面看就是指通过docker exec或docker attach进入容器,通过ip或ifconfig命令查看。

2.3.2 端口映射

在使用docker run的时候可以使用-P或者-p命令进行容器和主机之间的端口映射。使用-P(大写)不需要指定任何映射关系。使用-p(小写)则需要指定主机的端口应该映射到容器的哪个端口:

Docker容器端口映射原理都是在本地的iptable的nat表中添加相应的规则,将访问本机IP地址:hostport的网包进行一次DNAT,转换成容器IP:containerport。查看iptables得到验证:

DNAT发生在DOCKER这条iptables链,它有两处引用,分别是PREROUTING链和OUTPUT链,意味着从外面发到本机和本地进程访问本机的1234端口的包目的地址都会被修改成172.17.0.2:80。

使用docker port命令查看容器的端口在主机上的映射:

2.3.3 访问外网

默认情况下,容器可以使用docker0网桥上的接口访问外部网络的连接。如果发现访问不了外网,需要确认系统的ip_forward是否已打开。

或者检查docker daemon启动的时候--ip-forward参数是否被设置成false。

至于SNAT/MASQUERADE,Docker会在POSTROUTING链上自动创建规则:

即从容器网段出来访问外网的包,都要做一次MASQUERADE,即出去的包都用主机的IP地址替换源地址。

2.3.4DNS和主机名

容器中的DNS和主机名一般通过三个系统配置文件(/etc/resolv.conf、/etc/hosts、/etc/hostname)维护。在容器内修改这三个文件会立即生效,但容器重启后修改又会失效。如果想统一、持久化配置,可修改主机Docker Daemon的配置文件(/etc/docker/daemon.json):

也可以在docker run时使用--dns=address参数来指定。

可以在运行docker run创建容器时使用参数-h hostname或者--hostname hostname配置Docker容器的主机名。

2.3.5 自定义网络

Docker默认会创建一个docker0网桥,这个网桥和Docker容器使用的网段是可以自定义的。

如果已经使用默认配置启动Docker Daemon,又希望自定义个网段,可以使用下面的命令:

通过ip addr命令确认:

可以使用inspect命令查看某个网络的详细信息:

也可以加上network前缀:

查看主机上有多少个docker network:

默认情况下,Docker Daemon会预创建3个网络,分别使用对应的网络模式作为网络名称,即上面列出的bridge、host和null(对应none模式)。

使用network rm命令删除某个网络:

连接一个容器到网络中:

将容器和网络断开:

2.3.6 发布服务

Docker service是Docker的一个子命令:

Docker的service有点类似于Kubernetes的Service概念。

以上三条命令,先创建一个Docker的网络,然后发布一个服务,最后将这个服务和容器绑定,这样就达到了把容器当作服务发布的目的。

也可以用下面这条命令一次性实现:

2.3.7dockerlink:两两互联

docker link是一个遗留的特性,在新版本的Docker中,一般不推荐使用。

简单地说,docker link就是把两个容器连起来,相互通信。不过,link方式仅解决了单机容器间点对点的互联问题。

展开阅读全文

页面更新:2024-03-28

标签:目的   网段   网络   端口   容器   主机名   命令   参数   主机   权威   地址   技巧   指南

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top