docker学习(十八、network介绍)

@[TOC]添加链接描述

首先,我们要知道什么是 Docker 网络。简单来说,它就是 Docker 中用于实现容器间通信的一个东西。

network相关内容:
docker学习(十八、network介绍)
docker学习(十九、network使用示例bridge)
docker学习(二十、network使用示例host、none)
docker学习(二十一、network使用示例container、自定义)

熟悉的ifconfig

复制代码
ifconfig

当你的docker启动时,输入ifconfig命令可以看到如下内容:

  • docker0:docker0 是 Docker 默认的桥接网络接口。它是 Docker 在安装时自动创建的虚拟网络接口。桥接网络接口允许容器之间相互通信,并与主机进行通信。docker0 接口通常分配一个私有 IP 地址,用于 Docker 容器之间的通信
  • eth0:eth0 是主机的物理网络接口。在大多数情况下,eth0 是主机连接到外部网络的接口,也就是主机的网络接口卡。该接口通常通过路由器或交换机与其他网络设备连接,使主机能够与互联网或本地局域网进行通信。
  • lo:lo 是本地回环接口,也称为回环接口或环回接口。该接口是用于主机内部的本地通信,可以用来测试网络服务是否正常工作。lo 接口总是具有 IP 地址 127.0.0.1,这个地址被称为环回地址,表示本机自身。通过 lo 接口发送的数据将立即返回,不会离开主机,所以它可以用来测试网络服务和应用程序的功能。

Docker 网络的使用方式

  • 查看网络列表
bash 复制代码
docker network ls
  • 创建网络
    要创建一个新的 Docker 网络,可以使用 docker network create 命令。例如,以下命令将创建一个名为 my_test的 bridge 网络:
bash 复制代码
docker network create my_test
  • 运行容器并连接网络
    要将容器连接到一个 Docker 网络上,可以使用 --network 参数。例如,以下命令将运行一个名为 my_container 的容器,并将其连接到 my_test网络:
bash 复制代码
docker run --name my_container --network my_test my_image
  • 查看网络信息
    要查看 Docker 网络的信息,可以使用 docker network inspect 命令。例如,以下命令将查看名为 my_test 的网络的详细信息:
bash 复制代码
docker network inspect my_test
  • 删除网络
    要删除一个 Docker 网络,可以使用 docker network rm 命令。例如,以下命令将删除名为 my_test 的网络:
bash 复制代码
docker network rm my_test

Docker 网络的作用

  • 容器间的互联和通信以及端口映射
  • 容器IP变动时可以通过服务名直接网络通信而不受影响

Docker 网络模式

Docker 支持以下三种网络模式:

  1. bridge 网络
    bridge 网络是 Docker 默认的网络类型 。当你创建一个容器时,Docker 会为该容器创建一个虚拟网卡,并使其连接到 bridge 网络。所有连接到同一个 bridge 网络的容器可以相互通信,但默认情况下无法从容器外部访问这些容器
bash 复制代码
使用--network bridge指定,默认使用docker0
  1. host 网络
    使用 host 网络时,容器将共享主机的网络命名空间,也就是说容器和主机共享同一个 IP 地址和端口号 。这样做的好处是容器可以直接访问主机上的端口 ,但缺点是容器之间无法直接通信
bash 复制代码
使用--network host指定
  1. none 网络
    使用 none 网络时,容器没有任何网络连接。这意味着容器内部无法访问网络,也无法被外部网络访问。none 网络通常用于一些特殊场景,比如测试容器的网络隔离性能,或者你想自闭一段时间。
bash 复制代码
使用--network none指定
  1. container网络
    新创建的容器不会创建自己的网卡和配置自己的IP,而是和一个指定的容器共享IP、端口范围等。
bash 复制代码
使用--network container:容器名或者容器ID指定

注意事项

在使用 Docker 网络时,需要注意以下几点:

  • 容器之间的通信:默认情况下,容器之间无法直接通信。如果要容器之间进行通信,需要将它们连接到同一个 Docker 网络上。

  • 主机与容器之间的通信:默认情况下,容器无法直接访问主机上的端口。如果要容器能够访问主机上的端口,需要将容器连接到 host 网络。

  • 网络配置:Docker 网络可以使用不同的驱动程序进行配置,例如 bridge 驱动程序和 overlay 驱动程序。不同的驱动程序具有不同的特性和适用场景,需要根据实际情况进行选择。

  • 网络安全:在使用 Docker 网络时,需要注意网络安全问题。应该避免将敏感数据明文传输在网络中,同时也需要保护 Docker 容器的网络隔离性。

总的来说,Docker 网络是 Docker 中非常重要的一个概念。通过了解 Docker 网络的类型、使用方式以及注意事项,可以更好地理解 Docker 的工作原理,并且能够更加有效地使用 Docker 进行应用程序的开发和部署。

相关推荐
Java陈序员1 天前
轻量强大!一款现代化的 Kubernetes 集群管理与监控工具!
云原生·容器·kubernetes
Sheffield3 天前
Docker的跨主机服务与其对应的优缺点
linux·网络协议·docker
Sheffield3 天前
Alpine是什么,为什么是Docker首选?
linux·docker·容器
马艳泽3 天前
win10下运行Start Broker and Proxy报错解决
docker
用户13573999256604 天前
Windows 从 0 搭建 WSL2 原生 AI 开发环境:Codex + Docker + VSCode
docker
vi_h4 天前
在 macOS 上通过 Docker 安装并运行 Ollama(详细可执行教程)
macos·docker·ollama
黑心老魔4 天前
通过 Docker 创建开发环境
docker·开发环境
冬奇Lab5 天前
一天一个开源项目(第41篇):Workout.cool - 现代化开源健身教练平台,训练计划与进度追踪
docker·开源·资讯
天朝八阿哥5 天前
使用Docker+vscode搭建离线的go开发调试环境
后端·docker·visual studio code
阿虎儿6 天前
Docker安装(非sudo用户可用)
docker