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进阶:网络配置与服务编排
【10月更文挑战第17天】随着微服务架构的流行,Docker作为容器化技术的领导者,在企业级应用部署中扮演着重要角色。掌握Docker的高级特性,特别是网络配置和服务编排,对于构建高效、可维护的分布式系统至关重要。本文将深入探讨Docker的网络配置选项、容器间通信机制、端口映射技术以及使用Docker Compose进行多容器应用部署的最佳实践。
95 8
|
2月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
201 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
2月前
|
安全 Docker 容器
docker的默认网络模式有哪些
Docker 默认网络模式包括:1) bridge:默认模式,各容器分配独立IP,可通过名称或IP通信;2) host:容器与宿主机共享网络命名空间,性能最优但有安全风险;3) none:容器隔离无网络配置,适用于仅需本地通信的场景。
74 6
|
2月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
232 7
|
3月前
|
安全 网络安全 数据安全/隐私保护
利用Docker的网络安全功能来保护容器化应用
通过综合运用这些 Docker 网络安全功能和策略,可以有效地保护容器化应用,降低安全风险,确保应用在安全的环境中运行。同时,随着安全威胁的不断变化,还需要持续关注和研究新的网络安全技术和方法,不断完善和强化网络安全保护措施,以适应日益复杂的安全挑战。
65 5
|
4月前
|
Docker 容器
docker swarm启动服务并连接到网络
【10月更文挑战第16天】
79 5
|
4月前
|
调度 Docker 容器
docker swarm创建覆盖网络
【10月更文挑战第16天】
68 5
|
4月前
|
负载均衡 应用服务中间件 数据安全/隐私保护
docker swarm 创建 Swarm 模式下的网络
【10月更文挑战第14天】
117 6
|
4月前
|
负载均衡 网络协议 关系型数据库
docker swarm 使用网络启动服务
【10月更文挑战第15天】
62 4
|
4月前
|
应用服务中间件 nginx Docker
docker swarm创建覆盖网络
【10月更文挑战第14天】
43 3