Docker----Docker自定义网络

简介: Docker----Docker自定义网络

【原文链接】

(1)查看当前已经存在的docker网络

docker network list

如:

[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# docker network list
NETWORK ID     NAME      DRIVER    SCOPE
9741ca08001e   bridge    bridge    local
405291d91242   host      host      local
c07d37e1f457   none      null      local
[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# 

(2)创建192.168.0.0网段的自定义网络

如下,指定网段为192.168.0.0/24,网关为192.168.0.1,网络类型为bridge,网络名称为mynet

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

创建后再次查看当前docker网络

[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# docker network list
NETWORK ID     NAME      DRIVER    SCOPE
9741ca08001e   bridge    bridge    local
405291d91242   host      host      local
5fea02b3963d   mynet     bridge    local
c07d37e1f457   none      null      local
[root@iZbp1flzt6x7pxmxfhmxeeZ ~]#

(3)查看具体docker网络的详细信息

如下为查看新创建的mynet网络的详细信息

[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# docker network inspect mynet
[
    {
        "Name": "mynet",
        "Id": "5fea02b3963d7e7a8628f8c4e6e99d46db28442e6b0ea2a14962963ae1a94ed5",
        "Created": "2021-10-30T20:01:53.186295499+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": {},
        "Options": {},
        "Labels": {}
    }
]
[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# 

(4)创建名为centos1的docker容器,并指定网络为mynet

docker run -it --name centos1 --net mynet centos

如下为创建后并进入,查看ip

[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# docker run -it --name centos1 --net mynet centos
[root@e98a944fec1e /]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
217: eth0@if218: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:c0:a8:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.0.2/16 brd 192.168.255.255 scope global eth0
       valid_lft forever preferred_lft forever
[root@e98a944fec1e /]#

(5)创建名为centos2的docker容器,使用网络mynet

docker run -it --name centos2 --net mynet centos

如下,创建容器后进入并查看网络

[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# docker run -it --name centos2 --net mynet centos
[root@e4b7913e1581 /]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
219: eth0@if220: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:c0:a8:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.0.3/16 brd 192.168.255.255 scope global eth0
       valid_lft forever preferred_lft forever
[root@e4b7913e1581 /]#

(6)在名为centos1的容器中ping名为centos2的容器名

如下,可以ping通

[root@e98a944fec1e /]# ping centos2 -c 3
PING centos2 (192.168.0.3) 56(84) bytes of data.
64 bytes from centos2.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from centos2.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.072 ms
64 bytes from centos2.mynet (192.168.0.3): icmp_seq=3 ttl=64 time=0.069 ms

--- centos2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.049/0.063/0.072/0.012 ms
[root@e98a944fec1e /]#

(7)在名为centos2的容器中ping名为centos1的容器名

如下,同样可以ping通

[root@e4b7913e1581 /]# ping centos1 -c 3
PING centos1 (192.168.0.2) 56(84) bytes of data.
64 bytes from centos1.mynet (192.168.0.2): icmp_seq=1 ttl=64 time=0.038 ms
64 bytes from centos1.mynet (192.168.0.2): icmp_seq=2 ttl=64 time=0.069 ms
64 bytes from centos1.mynet (192.168.0.2): icmp_seq=3 ttl=64 time=0.063 ms

--- centos1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.038/0.056/0.069/0.016 ms
[root@e4b7913e1581 /]#

(8)自定义网络好处

  • 可以自动支持容器名到容器ip的映射,即可以直接把容器名作为ip使用
  • 可以为每个集群环境设置独立的网段,从而做到集群之间的隔离
  • 可以自定义容器网络的网段
目录
相关文章
|
4天前
|
存储 测试技术 数据安全/隐私保护
【Docker项目实战】使用Docker部署DailyTxT加密日记网络应用程序
【4月更文挑战第6天】使用Docker部署DailyTxT加密日记网络应用程序
55 1
|
4天前
|
应用服务中间件 nginx Docker
Docker网络管理
Docker网络管理
30 1
|
2天前
|
关系型数据库 MySQL 网络安全
Docker部署MySQL,2024网络安全通用流行框架大全
Docker部署MySQL,2024网络安全通用流行框架大全
|
2天前
|
运维 网络协议 Linux
Docker网络_docker 网络,来看看这份超全面的《Linux运维面试题及解析》
Docker网络_docker 网络,来看看这份超全面的《Linux运维面试题及解析》
|
4天前
|
运维 安全 Linux
深入理解Docker自定义网络:构建高效的容器网络环境
深入理解Docker自定义网络:构建高效的容器网络环境
|
4天前
|
Java Linux 数据安全/隐私保护
Docker自定义JDK镜像并拉取至阿里云镜像仓库全攻略
Docker自定义JDK镜像并拉取至阿里云镜像仓库全攻略
|
4天前
|
存储 弹性计算 运维
Docker数据集与自定义镜像:构建高效容器的关键要素
Docker数据集与自定义镜像:构建高效容器的关键要素
|
4天前
|
运维 Linux 虚拟化
Docker详解(十四)——Docker网络类型详解
Docker详解(十四)——Docker网络类型详解
22 0
|
4天前
|
监控 网络协议 数据安全/隐私保护
运用自定义协议设计与实现“跨网络计算器”
运用自定义协议设计与实现“跨网络计算器”
26 3
|
4天前
|
Kubernetes Docker 容器
【Docker专栏】Docker网络配置详解:从Bridge到Overlay
【5月更文挑战第7天】本文介绍了Docker的四种网络类型:Bridge(默认,每个容器连接虚拟桥)、Host(容器共享宿主机网络命名空间)、Overlay(跨宿主机通信,适合集群环境)和Macvlan(容器直接连接物理网络)。Bridge网络适用于同主机通信,而Overlay适合多主机集群。Host网络缺乏隔离,Macvlan则让容器直接连到外部网络。理解这些网络类型有助于优化Docker容器的网络配置。
【Docker专栏】Docker网络配置详解:从Bridge到Overlay