docker network使用

1.网络帮助命令

docker network --help
帮助命令.png

2.应用

使用自定义网络,当容器ip变动时,可以通过服务名直接网络通信而不受ip变动影响

3.网络模式

3.1 bridge

为每一个容器分配设置ip,并将容器连接到docker0 , 默认模式

使用示例:
    docker run -d --name my_container -p 8080:80 nginx
docker0.png

3.2 host

容器不会虚拟出自己的网卡、配置自己的ip,而是使用宿主机的ip和端口

使用示例:
    docker run -d --name my_container --network host nginx

3.3 none

容器有独立的network namespace,但并没有对其进行任何网络设置

使用示例:
    docker run -d --name my_container --network none alpine sleep 3600

3.4 container

新创建的容器不会创建自己的网卡和配置自己的ip,而是和一个指定的容器共享ip、端口范围

创建共享容器:
    docker run -d --name container1 nginx
使用示例:
    docker run -d --name container2 --network container:container1 alpine

3.5 overlay

跨主机的容器网络,支持多主机通信

创建网络:
    docker network create -d overlay my_overlay
使用示例:
    docker service create --network my_overlay --name my_service nginx

3.6 macvlan

为容器分配独立的 MAC 地址,使其像物理设备一样接入物理网络

创建网络:
    docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 my_macvlan
使用示例:
    docker run -d --name my_container --network my_macvlan nginx

3.7 ipvlan

多个容器共享同一 MAC 地址,通过不同 IP 区分

创建网络:
    docker network create -d ipvlan --subnet=192.168.1.0/24 -o parent=eth0 my_ipvlanmy_macvlan
使用示例:
    docker run -d --name my_container --network my_ipvlan nginx

3.8 模式对比表

模式 隔离性 性能 跨主机支持 典型用途
bridge 单机容器通信
host 高性能需求
none - 完全自定义网络
container 共享同一网络(Sidecar)
overlay 集群跨节点通信
macvlan 直接接入物理网络
ipvlan 节省 MAC 地址资源

4.自定义网络

4.1 说明

自定义网络本身就维护好了主机名和ip的对应关系(ip和容器名都能ping通)

4.2 创建

docker network create network_name

4.3 使用

docker run -it --network network_name -d image_name

4.4 容器中使用

ping same_network_name other_container_name:port
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • docker 网络的种类 host bridge overlay Macvlan host 如果你对一个容器使用的...
    Tim_SSS阅读 24,028评论 0 7
  • 一、有哪五种模式网络: docker的网络模式大致可以分成五种类型: 默认是bridge模式网络 使用–net =...
    宇宙小神特别萌阅读 8,725评论 0 3
  • 1 基本概念 网络命名空间Linux 网络命名空间是内核中隔离的网络栈,具有自己的接口,路由和防火墙规则。它负责容...
    一个反派人物阅读 5,074评论 0 1
  • 通信场景 本章我们继续讲解docker网络驱动,在学习docker网络驱动之前我们先思考下面几个docker容器之...
    laizhiy阅读 9,643评论 0 0
  • Docker 提供了多种网络连接方式,以满足不同场景下的需求。理解这些网络模式有助于更好地管理和优化容器之间的通信...
    SnuggleE阅读 4,377评论 0 0