【Docker】Docker中network的概要、常用命令、网络模式以及底层ip和容器映射变化的详细讲解

简介: 【Docker】Docker中network的概要、常用命令、网络模式以及底层ip和容器映射变化的详细讲解

c5ad48a017564cd1b1dfb42d0a5cd134.png前言:Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux系统 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker network的概要

Docker网络是Docker容器之间和容器与外部世界之间进行通信的关键组件。它允许容器之间相互通信,并提供与外部网络的连接。下面是关于Docker网络的一些概要:

  • 1.Docker网络模型:

Docker网络模型包括三个主要组件:容器、网络和端点。容器是运行应用程序的独立环境,网络提供容器之间和容器与外部世界之间的通信路径,而端点则是连接容器和网络的桥梁。


2.Docker网络类型:

 Docker支持多种网络类型,包括桥接网络、主机网络、覆盖网络和无网络。桥接网络是默认的网络类型,它使用Docker daemon主机上的桥接接口将容器连接到主机网络。主机网络直接将容器连接到主机网络接口,使得容器可以直接访问主机上的网络资源。覆盖网络是多个Docker守护进程连接在一起的虚拟网络,它允许容器在不同主机上进行通信。无网络类型则表示容器没有网络访问能力。


3.Docker网络驱动程序:

 Docker网络驱动程序负责创建和管理Docker网络。常见的驱动程序包括bridge、host、overlay等。bridge驱动程序是默认的网络驱动程序,它创建一个本地的软件桥接接口,用于连接容器和宿主机的网络。host驱动程序直接使用宿主机网络接口,使得容器可以直接访问宿主机的网络资源。overlay驱动程序用于创建跨多个Docker守护进程的覆盖网络。


4.Docker网络命令:

 Docker提供了一组命令来管理和配置网络。常见的命令包括docker network create用于创建网络,docker network connect用于连接容器到网络,docker network inspect用于查看网络信息等。


5.Docker网络的使用场景:

 Docker网络可用于各种使用场景,包括单主机部署、多主机集群、微服务架构等。通过使用不同的网络类型和驱动程序,可以灵活地配置和管理Docker网络,以满足不同的需求。


56e9c91fadbb40fb83151b5977d6c09d.jpg

network的常用命令

上面我们提及到了Docker network,那么关于network的常用命令有哪些呢?让我们一起来看看吧。

  • 1.创建网络:
docker network create <network_name>

该命令用于创建一个新的Docker网络,其中<network_name>是网络的名称。

  • 2.列出网络:
docker network ls

该命令用于列出所有可用的Docker网络。

  • 3.查看网络详情:
docker network inspect <network_name>
  • 4.连接容器到网络:
docker network connect <network_name> <container_name>

该命令用于将已创建的容器连接到指定的Docker网络中,其中<network_name>是网络名称,<container_name>是容器名称或ID。

  • 5.断开容器与网络的连接:
docker network disconnect <network_name> <container_name>

该命令用于断开指定容器与指定Docker网络的连接

  • 6.删除网络:
docker network rm <network_name>

该命令用于删除指定的Docker网络,其中<network_name>是要删除的网络名称。

以上就是一些常用的Docker网络命令啦,可以用于创建、管理和删除Docker网络。如有问题,欢迎各位指出


network的网络模式

接下来让我们来看看network的网络模式有哪几种呢。Docker提供了多种网络模式,可以根据不同的需求选择适合的网络模式。以下是一些常见的Docker网络模式:

1.Bridge模式(桥接模式):

 桥接模式是默认的Docker网络模式。在桥接模式下,Docker会为每个容器分配一个唯一的IP地址,并将它们连接到宿主机上的桥接接口。容器之间可以通过IP地址进行通信,也可以通过容器名称进行通信。此外,桥接模式允许容器与宿主机以及宿主机上的其他网络资源进行通信。


2.Host模式(主机模式):

 主机模式下,Docker容器与宿主机共享网络栈。容器将直接使用宿主机的网络接口,而不会获得自己的网络命名空间。这意味着容器可以使用宿主机上的所有网络资源,包括IP地址、端口等。由于与宿主机共享网络栈,容器之间的端口冲突可能会发生。


3.None模式(无网络模式):

 在无网络模式下,Docker容器没有网络连接。这意味着容器无法访问外部网络,也无法与其他容器进行通信。无网络模式适用于一些安全性要求较高的场景,或者仅需要运行计算型任务而不涉及网络通信的场景。


4.Overlay模式(覆盖模式):

 覆盖模式用于创建跨多个Docker守护进程的覆盖网络。覆盖网络允许不同宿主机上的容器之间进行通信,使得容器可以在多主机集群中无缝运行。覆盖网络使用了Swarm模式,它是Docker的集群管理工具。

network底层ip和容器映射变化

  在Docker网络中,有两个关键的概念:底层IP和容器映射

1.底层IP:每个Docker容器都会分配一个底层IP地址,这个地址是在Docker宿主机上的虚拟网络接口上分配的。底层IP是容器内部使用的IP地址,用于容器内部进程之间的通信。


2.容器映射:容器映射是指将容器的端口映射到宿主机的端口,以便容器可以通过宿主机的网络接口与外部进行通信。当我们在创建容器时使用-p或--publish参数指定端口映射规则时,Docker会将容器内部的端口映射到宿主机上的一个随机端口或指定的端口上。


 具体来说,当我们创建一个Docker容器并指定端口映射规则时,Docker会在宿主机上创建一个转发规则,将宿主机上的指定端口与容器内部的端口进行绑定。这样,当外部系统通过宿主机的IP地址和绑定的端口访问时,请求会被转发到容器内部的对应端口上。


 举个例子,假设我们创建了一个名为webapp的Docker容器,并将容器内部的80端口映射到宿主机的8080端口。那么,当我们通过宿主机的IP地址和8080端口访问时,请求会被转发到容器内部的80端口,从而访问到容器中运行的Web应用。


 综上所述的话呢,底层IP是容器内部使用的IP地址,用于容器内部进程之间的通信;而容器映射是将容器的端口映射到宿主机的端口,以便容器可以与外部网络进行通信。通过这种方式,Docker网络提供了灵活且可定制的网络配置选项,使得容器可以轻松地与其他容器和外部系统进行通信。

image.png


如果本文对大家有所帮助的话,还望各位能给我点赞、收藏并评论一下,感谢各位💕!!! 另如果大家有什么疑问或者建议的话,欢迎评论区留言。

相关文章
|
26天前
|
开发者 Docker 容器
获取Docker基础使用方法:让容器化变得轻松。
对于Docker的初学者来说,了解这些基础知识点就足够了。实践是最好的老师,越是动手操作,对Docker的理解会越深。祝阅读这篇文章的开发者们一切顺利,愿你在Docker的海洋中航行顺利!
80 17
|
1月前
|
关系型数据库 MySQL Docker
|
2月前
|
Ubuntu Linux Docker
Docker容器的实战讲解
这只是Docker的冰山一角,但是我希望这个简单的例子能帮助你理解Docker的基本概念和使用方法。Docker是一个强大的工具,它可以帮助你更有效地开发、部署和运行应用。
131 27
|
12天前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
|
3月前
|
Ubuntu 关系型数据库 MySQL
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
174 16
|
3月前
|
存储 虚拟化 Docker
|
3月前
|
存储 开发工具 开发者
揭秘 Microsoft.Docker.SDK:让容器开发更轻松的强大工具揭秘
随着云计算和容器技术的快速发展,`Docker` 已经成为容器化技术的事实标准。`Microsoft` 作为 `Docker` 的主要支持者和参与者,推出了 `Microsoft.Docker.SDK`,旨在帮助开发者更轻松地进行容器开发。本文将深入揭秘 Microsoft.Docker.SDK 的功能、使用方法以及它在容器开发中的应用。
119 12
|
3月前
|
开发工具 虚拟化 git
自学软硬件第755 docker容器虚拟化技术youtube视频下载工具
docker容器虚拟化技术有什么用?怎么使用?TubeTube 项目使用youtube视频下载工具
|
3月前
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
195 30
|
3月前
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
132 0
课时5:阿里云容器服务:最原生的集成Docker和云服务
下一篇
oss创建bucket
OSZAR »