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 进行应用程序的开发和部署。

相关推荐
爪哇哇哇哇10 分钟前
docker部署jenkins,安装使用一条龙教程
docker·容器·jenkins
simplesin12 分钟前
docker 增加镜像(忘记什么bug了)
docker·bug
小李的便利店13 分钟前
软件环境安装-通过Docker安装Elasticsearch和Kibana【保姆级教程、内含图解】
elasticsearch·docker·容器·kibana
久违 °26 分钟前
【渗透测试】反弹 Shell 技术详解(二)
linux·网络·网络安全
大白的编程日记.32 分钟前
【Git学习笔记】Git结构原理及其分支管理模型分析
笔记·git·学习
Codingwiz_Joy42 分钟前
Day07 -实例 非http/s数据包抓取工具的使用:科来 & wrieshark & 封包监听工具
网络·网络协议·安全·安全性测试
roman_日积跬步-终至千里43 分钟前
【Docker compose】基于宿主机的Neo4j自动备份
docker·容器·neo4j
lss05551 小时前
eclipse-mosquitt之docker部署安装与使用
java·docker
shixiexunnie1 小时前
从点灯开始的51单片机生活
单片机·嵌入式硬件·学习·51单片机
jc0803kevin1 小时前
docker mysql 默认配置文件路径
mysql·adb·docker