容器间的网络通信|学习笔记

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 快速学习容器间的网络通信

开发者学堂课程【深入解析 Docker 容器化技术容器间的网络通信】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/659/detail/10958


容器间的网络通信

 

内容介绍

一、创建容器

二、互相通信

 

一、创建容器

本章节学习容器之间如何进行通信。

1、创建三个容器,分别是 c1,c2,c3

//创建两个容器分别是 c1c2 这两个容器默认使用的网络驱动都是 bridge。

docker run -itdname=c1 busybox

docker run -itd –name=c1 busybox

//通过 docker network inspect bridge 查看到使用 bridge 网络驱动的容器有 c1c2

//创建 c3容器,c3容器指定了自定义的网络驱动为 isolated_nw 网络,所以需要首先创建该网络,如果就有该网络就不需要创建。

Docker network create –driver bridge isolated_nw

//创建 c3容器c3容器使用的是 isolated_nw 网络。

docker run –network-isolated_nw-itd --name=c3 busybox

2、为 c2容器添加一个新的网络。

Docker network connect isolated_nw c2

 

二、互相通信

目前容器所拥有的网络:c1容器默认使用的网络是 bridge,创建好的 c2容器也有 bridge 网络,并且还新增了一个 isolated_nw 网络,c3容器只有一个网络,即 isolated_nw 网络。c1与 c2,c1与c3,c2与 c3之间通过 ping 命令就可以进行通信。

1、首先查看三个容器的 ip 地址。

Docker inspect c1

Docker inspect c2

Docker inspect c3

c1的 ip 地址是172.17.0.4。由于 c2有两个网络驱动,所以 c2有两个 ip 地址,分别是172.17.0.5和172.19.0.3,c3的 ip 地址是172.19.02c1中只有一个 bridge 网络驱动,c3 中只有一个网络驱动是 isolated_nw,而 c2中拥有两个网卡,分别是 bridge isolated_nw。由此得出,c1和 c2 可以通过 bridge 网卡通信,c2和 c3通过网卡 isolated_nw 通信。而 c1和 c3则不能进行通信,因为它们不属于一个局域网。

2、验证猜想:分别进入 c1c2c3容器,ping 一下即可。

//进入 c1 容器,-w 4表示响应的结果是4行。

Docker attach c1

Ping -w 4 172.17.0.5

//有响应数据,表示 c1和 c2可以通信。注意:Ping -w 4 c2 的写法是错误的,不能直接 ping 容器的名字,只能 ping 容器的 IP 地址。

Ping -w 4 172.19.0.2

//c1 ping c3 的 IP 地址则没有响应数据,表示 ping 不通,c1 c3不能进行通信。

退出 c1容器,快捷键是 ctrl+q+p。

//进入 c2容器,ping c1的 ip 地址。

Docker attach c2

Ping -w 4 172.17.0.4

//结果有响应数据,c2和 c1可以进行通信

Ping -w 4 172.19.0.2

// ping c3的 ip 地址有响应数据,c2和 c3可以进行通信

image.png

c2能和 c1,c3进行通信是因为 c2有两块网卡,而 c1c3不能进行通信是因为 c1 和 c3的网络不一样。

以上是本节课所讲内容:docker 网络管理之容器间的网络通信。

相关文章
|
1月前
|
Ubuntu 网络安全 图形学
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
在Ubuntu 20.04系统中解决网络图标消失和无法连接有线网络问题的方法,其中第三种方法通过检查并确保Windows防火墙中相关服务开启后成功恢复了网络连接。
490 0
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
|
2月前
|
负载均衡 网络协议 开发者
掌握 Docker 网络:构建复杂的容器通信
在 Docker 容器化环境中,容器间的通信至关重要。本文详细介绍了 Docker 网络的基本概念和类型,包括桥接网络、宿主网络、覆盖网络和 Macvlan 网络等,并提供了创建、管理和配置自定义网络的实用命令。通过掌握这些知识,开发者可以构建更健壮和灵活的容器化应用,提高应用的可扩展性和安全性。
|
1月前
|
弹性计算 Kubernetes 网络协议
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程
阿里云弹性网络接口技术的容器网络基础教程
|
1月前
|
Docker 容器
docker中检查容器的网络模式
【10月更文挑战第5天】
136 1
|
1月前
|
网络协议 Shell 网络安全
docker容器网络问题
【10月更文挑战第4天】
140 2
|
1月前
|
监控 Kubernetes 测试技术
掌握Docker网络模式:构建高效容器通信
【10月更文挑战第3天】本文深入探讨了Docker的网络模式,包括它们的工作原理、使用场景以及如何配置和优化容器间的通信。希望能够帮助开发者在项目中有效地应用Docker网络模式,构建高效的容器化应用。
|
1月前
|
网络协议 Ubuntu 前端开发
好好的容器突然起不来,经定位是容器内无法访问外网了?测试又说没改网络配置,该如何定位网络问题
本文记录了一次解决前端应用集成到主应用后出现502错误的问题。通过与测试人员的沟通,最终发现是DNS配置问题导致的。文章详细描述了问题的背景、沟通过程、解决方案,并总结了相关知识点和经验教训,帮助读者学习如何分析和定位网络问题。
103 0
|
2月前
|
NoSQL 应用服务中间件 Redis
Docker跨宿主机容器通信-通过网络跨宿主机互联
这篇文章介绍了Docker容器跨宿主机通信的实现方法,包括Docker的四种网络模式(host、none、container、bridge)以及如何通过修改网络配置和添加路由规则来实现不同宿主机上的容器之间的互联。
222 0
Docker跨宿主机容器通信-通过网络跨宿主机互联
|
1月前
|
机器学习/深度学习 数据可视化 Linux
Seaborn可视化学习笔记(一):可视化神经网络权重分布情况
这篇文章是关于如何使用Seaborn库来可视化神经网络权重分布的教程,包括函数信息、测试代码和实际应用示例。
41 0
|
2月前
|
网络协议 安全 开发者
掌握 Docker 网络:构建复杂的容器通信
在 Docker 容器化环境中,容器间的通信至关重要。本文详细介绍了 Docker 网络的基础知识,包括网络驱动、端口映射和命名等核心概念,并深入探讨了 Bridge、Host、Overlay 和 Macvlan 四种网络类型的特点及应用场景。此外,还提供了创建、连接、查看和删除自定义网络的命令示例,以及高级网络配置方法,如网络命名空间、DNS 解析和安全通信配置,帮助开发者构建更健壮的容器化应用。