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

相关文章
|
1月前
|
应用服务中间件 nginx Docker
Docker网络管理
Docker网络管理
26 1
|
3月前
|
Ubuntu 应用服务中间件 nginx
Docker 网络
Docker 网络
57 0
|
30天前
|
负载均衡 算法 应用服务中间件
Docker Swarm总结+service创建和部署、overlay网络以及Raft算法(2/5)
Docker Swarm总结+service创建和部署、overlay网络以及Raft算法(2/5)
88 0
|
1月前
|
关系型数据库 MySQL 数据库
虚拟机Linux-Centos系统网络配置常用命令+Docker 的常用命令
虚拟机Linux-Centos系统网络配置常用命令+Docker 的常用命令
34 0
|
2月前
|
JSON Kubernetes Linux
Docker之网络模式
docker基础 网络模式
51 2
|
2月前
|
测试技术 Linux 数据安全/隐私保护
【好用的个人工具】在Docker环境下部署WatchYourLAN轻量级网络IP扫描器
【2月更文挑战第2天】在Docker环境下部署WatchYourLAN轻量级网络IP扫描器
99 0
|
2月前
|
消息中间件 安全 网络安全
【网络安全 | Kali】基于Docker的Vulhub安装教程指南
【网络安全 | Kali】基于Docker的Vulhub安装教程指南
55 0
|
3月前
|
Linux 应用服务中间件 虚拟化
一文了解Docker之网络模型
Docker是一种容器化平台,它提供了一种轻量级的虚拟化解决方案,使得应用程序能够以容器的形式运行。在Docker中,每个容器都有自己的网络栈,可以与其他容器或主机进行通信。Docker网络模型为容器提供了灵活的网络配置和连接选项。 Docker网络模型基于Linux内核的网络命名空间和虚拟以太网桥技术。每个Docker容器都有自己的网络命名空间,这意味着每个容器都有自己的网络接口、IP地址和路由表。Docker还提供了一些网络驱动程序,用于实现容器之间的通信和与外部网络的连接。
|
3月前
|
存储 网络协议 Linux
深入剖析docker核心技术(namespace、cgroups、union fs、网络)(二)
深入剖析docker核心技术(namespace、cgroups、union fs、网络)(二)
40 0
|
3月前
|
Linux 调度 虚拟化
深入剖析docker核心技术(namespace、cgroups、union fs、网络)(一)
深入剖析docker核心技术(namespace、cgroups、union fs、网络)(一)
112 0