docker网络模式

docker 网络模式介绍

# Tips:如下模式在集群模式下无法使用
    bridge:     --net=bridge                # 桥模式(默认模式,创建容器时可省略,容器与宿主机共享Network namespace)
    host:       --net=host                  # 宿主机模式(直接绑定在宿主机ip,无端口映射功能,容器与宿主机共享Network namespace)
    none:       --net=none                  # 无网络(容器有独立的Network namespace,但未进行任何配置,如需要可自行定义配置网络)
    container:  --net=container:NAME_or_ID  # 容器模式(当前容器与另一指定容器共享Network namespace)
    user-defined:# 用户自定义模式

# Tips、bridge 与 host 模式的区别
    1、bridge 模式下,容器有独立的ip,与主机或其他容器的隔离性好(小心映射到0.0.0.0 上的端口,在不写acl时firewalld未进行拦截)
    2、host 模式,可能会出现端口冲突,不支持端口映射(因为容器内的port直接绑定到物理机上)

# Tips、默认桥接网络docker0 与 自定义桥接网络的差别
    默认桥接网络docker0:
        1、网络中所有主机只能使用ip访问,(--link创建的容器可以直接使用 容器名 进行访问----新版已不推荐)
    自定义网络桥接网络:
        1、网络中所有主机除ip访问外,还可以直接用容器名(container-name)作为hostname相互访问。

docker network 日常使用命令

# 查看容器网络
[root@OSS ~]# docker network ls
NETWORK ID     NAME                           DRIVER    SCOPE
7e8786d962ce   bridge                         bridge    local
ae0ee70c6e6c   host                           host      local
0bbaf35776c1   none                           null      local
425f4266976b   redis_byy-edge                 bridge    local
89e488e4aa58   zookeeper_and_kafka_byy-edge   bridge    local

# 查看某容器的网络类型
    docker inspect --format='{{.HostConfig.NetworkMode}}' <container_name_or_id>

# 查看容器网络详情
    docker network inspect NETWORK_NAME

# 创建容器网络
    docker network create [OPTIONS] NETWORK_NAME
    docker network create -d bridge my-bridge                           # 创建一个桥接网络
    docker network create -d bridge --subnet 192.168.1.0/24 my-bridge   # 创建指定网络的桥接网络

# 删除容器网络
    docker network rm NETWORK_NAME
# 清理未使用的网络(-f 强制删除)
    docker network prune

# 将容器连接到网络
    docker network connect NETWORK_NAME CONTAINER
# 将容器从某网络断开
    docker network disconnect NETWORK_NAME CONTAINER

docker compose 中如何指定网络模式

## 其他模式参考写法
    network_mode: "bridge"
    network_mode: "host"
    network_mode: "none"
    network_mode: "service:[service name]"
    network_mode: "container:[container name/id]"

示例一、host模式

[root@OSS ~]# cat docker-compose.yaml
services:
  nginx:
    image: nginx:lastest
    container_name: nginx
    restart: unless-stopped
    environment:
      TZ: Asia/Shanghai
    network_mode: host

示例二、多容器使用 同一个mynet自定义网络

[root@OSS ~]# cat docker-compose.yaml
services:
  web:
    image: nginx
    networks: mynet
  db:
    image: mysql
    networks: mynet

networks:
  mynet:
    driver: bridge

示例三、使用自定义网段网络

services:
  web:
    image: nginx
    networks:
      - my-network

networks:
  my-network:
    driver: bridge
    ipam:
      config:
        - subnet: 192.168.1.0/24
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/1389.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2024/9/23作者: 辣条①号

目标:网络规划设计师、系统工程师、ceph存储工程师、云计算工程师。 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录