Docker网络 (三)

简介: Docker网络 (三)

六、自定义Docker网络#


6.1、docker中的网络#


查看docker所有的网络:



  • briage:桥接网络(也是默认的网络)。通过Docker0作为网桥,实现容器联网互通
  • host:和宿主机共享网络(使用同一块网卡)
  • none:不配置网络,形成一个全封闭的容器,无法和外网连接
  • container:让一个容器共享另一个容器网络相关的namespace,实现让几个容器内网络互通


6.2、自定义网络#


默认网络参数


# 启动容器时我们不添加网络相关启动参数,Docker会为我们补全成下面这样
# 而这里指定的 bridge 就是就是docker0
docker run -d -P --name xxx --net bridge imageId
# --net 指定当前容器启动后加入到哪个网络中


自定义


# 创建自定义网络
# --subnet 192.168.0.0/16 指定了子网网络,可以分配2的16次方-2个ip
# --gateway 192.168.0.1 网关路由器的ip地址
[root@VM-0-5-centos ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
a8a84221d4a73a2e2eda9f692c74af75cdbdac440e8c7587b56847c61e1dde4c
# 查看是否创建成功了
[root@VM-0-5-centos ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
a9ff308438a8        bridge              bridge              local
0d98ae518a10        host                host                local
a8a84221d4a7        mynet               bridge              local
cb71d8cdbbca        none                null                local


查看我们自定义的网络详情



查看宿主机网卡信息:可以看到宿主机上多出来了一张虚拟网卡



在自定义的网络中的容器是可以直接通过对方的 容器名 ping通的


七、网络连通#


如何让Docker中两个不同网络中的容器互通呢?



见上图,理论上容器1和容器2彼此互通,容器3容器4彼此互通,但是容器12和容器34之间时不互通的,因为他们都不在一个网段中。


具体的作为如下图:



容器2想ping通容器3或者容器4,本质上是需要将容器2加入到mynet 的网络中。


# 使用connect命令,把一个容器连接到一个网络上
# 查看帮助文档
[root@VM-0-5-centos ~]# docker network --help
Usage:  docker network COMMAND
Manage networks
Commands:
  connect     Connect a container to a network
  create      Create a network
  disconnect  Disconnect a container from a network
  inspect     Display detailed information on one or more networks
  ls          List networks
  prune       Remove all unused networks
  rm          Remove one or more networks
Run 'docker network COMMAND --help' for more information on a command.
# 查看connect帮助文档的使用
[root@VM-0-5-centos ~]# docker network connect --help
Usage:  docker network connect [OPTIONS] NETWORK CONTAINER
Connect a container to a network
Options:
      --alias strings           Add network-scoped alias for the container
      --driver-opt strings      driver options for the network
      --ip string               IPv4 address (e.g., 172.30.100.104)
      --ip6 string              IPv6 address (e.g., 2001:db8::33)
      --link list               Add link to another container
      --link-local-ip strings   Add a link-local address for the container
# 将指定容器添加到指定网络
[root@VM-0-5-centos ~]# docker network connect mynet tomcat1
# 检查是否添加成功
[root@VM-0-5-centos ~]# docker inspect mynet
[
    {
        "Name": "mynet",
        "Id": "a8a84221d4a73a2e2eda9f692c74af75cdbdac440e8c7587b56847c61e1dde4c",
        "Created": "2020-09-18T09:30:17.769656045+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.0.0/16",
                    "Gateway": "192.168.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "41976989fbea4138554e131d4067d4eb2bcfb3b6a2491be94af2fd5c64c64256": {
                "Name": "tomcat1",
                "EndpointID": "6894396881ffbbfe0fcf62da1ffcee304218120207f5b5a27f907bb2c306955b",
                "MacAddress": "02:42:c0:a8:00:02",
                "IPv4Address": "192.168.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]


八、参考:#


猿大白:https://www.cnblogs.com/bakari/p/10613710.html

相关文章
|
24天前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
152 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
1月前
|
安全 Docker 容器
docker的默认网络模式有哪些
Docker 默认网络模式包括:1) bridge:默认模式,各容器分配独立IP,可通过名称或IP通信;2) host:容器与宿主机共享网络命名空间,性能最优但有安全风险;3) none:容器隔离无网络配置,适用于仅需本地通信的场景。
42 6
|
1月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
128 7
|
2月前
|
安全 网络安全 数据安全/隐私保护
利用Docker的网络安全功能来保护容器化应用
通过综合运用这些 Docker 网络安全功能和策略,可以有效地保护容器化应用,降低安全风险,确保应用在安全的环境中运行。同时,随着安全威胁的不断变化,还需要持续关注和研究新的网络安全技术和方法,不断完善和强化网络安全保护措施,以适应日益复杂的安全挑战。
52 5
|
3月前
|
Docker 容器
docker swarm启动服务并连接到网络
【10月更文挑战第16天】
56 5
|
3月前
|
调度 Docker 容器
docker swarm创建覆盖网络
【10月更文挑战第16天】
57 5
|
3月前
|
负载均衡 网络协议 关系型数据库
docker swarm 使用网络启动服务
【10月更文挑战第15天】
44 4
|
2月前
|
Docker 容器
【赵渝强老师】Docker的None网络模式
Docker容器在网络方面实现了逻辑隔离,提供了四种网络模式:bridge、container、host和none。其中,none模式下容器具有独立的网络命名空间,但不包含任何网络配置,仅能通过Local Loopback网卡(localhost或127.0.0.1)进行通信。适用于不希望容器接收任何网络流量或运行无需网络连接的特殊服务。
|
2月前
|
Docker 容器
【赵渝强老师】Docker的Host网络模式
Docker容器在网络环境中是隔离的,可通过配置不同网络模式(如bridge、container、host和none)实现容器间或与宿主机的网络通信。其中,host模式使容器与宿主机共享同一网络命名空间,提高性能但牺牲了网络隔离性。
|
2月前
|
Kubernetes Docker 容器
【赵渝强老师】Docker的Container网络模式
Docker容器在网络环境中彼此隔离,但可通过配置不同网络模式实现容器间通信。其中,container模式使容器共享同一网络命名空间,通过localhost或127.0.0.1互相访问,提高传输效率。本文介绍了container模式的特点及具体示例。