【docker集群应用】Docker网络与资源控制

Docker 网络

Docker 网络实现原理

Docker 使用 Linux 桥接技术,在宿主机上虚拟一个名为 docker0 的 Docker 容器网桥。当 Docker 启动一个容器时,会根据 docker0 网桥的网段分配给容器一个 IP 地址(Container-IP)。由于同一宿主机内的容器都连接到同一个网桥,因此容器之间可以通过各自的 Container-IP 直接通信。
Docker 网桥是虚拟的,不是真实存在的网络设备,因此外部网络无法直接寻址到它,这意味着外部网络无法直接通过 Container-IP 访问容器。如果希望外部网络能够访问容器,可以通过端口映射将容器端口映射到宿主主机,即使用 docker run 命令的 -p-P 参数。

端口映射示例

# 随机映射端口(从32768开始)
docker run -d --name test1 -P nginx

# 指定映射端口
docker run -d --name test2 -p 43000:80 nginx

通过 docker ps -a 可以查看容器的端口映射情况,例如:

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                   NAMES
9d3c04f57a68   nginx     "/docker-entrypoint.…"   4 seconds ago    Up 3 seconds    0.0.0.0:43000->80/tcp   test2
b04895f870e5   nginx     "/docker-entrypoint.…"   17 seconds ago   Up 15 seconds   0.0.0.0:49170->80/tcp   test1

可以通过浏览器访问 http://192.168.80.10:43000http://192.168.80.10:49170 来访问对应的容器。

查看容器的输出和日志信息

使用 docker logs 命令可以查看容器的输出和日志信息:

docker logs 容器的ID/名称

Docker 的网络模式

使用 --net--network 选项指定容器的网络模式

  1. Host 模式
    • 相当于 Vmware 中的桥接模式,与宿主机在同一个网络中,但没有独立 IP 地址。
    • 容器与宿主机共享同一个 Network Namespace,使用宿主机的 IP 和端口。
    • 使用 --net=host 指定。
  2. Container 模式
    • 新创建的容器与已存在的容器共享一个 Network Namespace。
    • 共享 IP、端口范围等,但文件系统、进程列表等仍然隔离。
    • 使用 --net=container:NAME_or_ID 指定。
  3. None 模式
    • 容器拥有自己的 Network Namespace,但不进行任何网络配置。
    • 只有 lo 回环网络,没有其他网卡。
    • 无法联网,但保证了容器的安全性。
    • 使用--net=none指定。
  4. Bridge 模式
    • Docker 的默认网络模式。
    • 容器使用独立的 Network Namespace,并连接到 docker0 虚拟网卡。
    • 通过 docker0 网桥和 iptables nat 表配置与宿主机通信。
    • 为每个容器分配 IP,并通过 veth pair 设备与 docker0 网桥连接。
    • 默认设置,可省略或使用 --net=bridge 指定。
  5. 自定义网络
    • 允许用户自定义网络配置,如指定子网、网关等。
    • 可以使用 docker network create 命令创建自定义网络。
    • 示例:
      # 创建自定义网络
      docker network create --subnet=172.18.0.0/16 --opt "com.docker.network.bridge.name"="docker1" mynetwork
      #docker1 为执行 ifconfig -a 命令时,显示的网卡名,如果不使用 --opt 参数指定此名称,那你在使用 ifconfig -a 命令查看网络信息时,看到的是类似 br-110eb56a0b22 这样的名字,这显然不怎么好记。
      #mynetwork 为执行 docker network list 命令时,显示的bridge网络模式名称。
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值