Docker----Docker容器跨网络互联

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Docker----Docker容器跨网络互联

【原文链接】

(1)创建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 ~]#

(2)创建名为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 /]#

(3)创建名为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 /]#

(4)创建192.169.0.0网段的自定义网络

如下,指定网段为192.169.0.0/24,网关为192.169.0.1,网络类型为bridge,网络名称为mynet2

docker network create --driver bridge --subnet 192.169.0.0/16 --gateway 192.169.0.1 mynet2

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

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

(5)创建名为centos3的docker容器,并指定网络为mynet2

docker run -it --name centos3 --net mynet2 centos

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

[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# docker run -it --name centos3 --net mynet2 centos
[root@41f0ebf82add /]# 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
226: eth0@if227: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:c0:a9:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.169.0.2/16 brd 192.169.255.255 scope global eth0
       valid_lft forever preferred_lft forever
[root@41f0ebf82add /]#

(6)创建名为centos4的docker容器,使用网络mynet2

docker run -it --name centos4 --net mynet2 centos

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

[root@iZbp1flzt6x7pxmxfhmxeeZ ~]# docker run -it --name centos4 --net mynet2 centos
[root@6d94db61d337 /]# 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
228: eth0@if229: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:c0:a9:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.169.0.3/16 brd 192.169.255.255 scope global eth0
       valid_lft forever preferred_lft forever
[root@6d94db61d337 /]#

(7)验证网络联通性

  • 此时创建好的centos1和centos2在192.168.0.0网络里,centos3和centos4在192.169.0.0的网络里
  • 可以验证centos1中可以ping通centos2,但是无法和centos3容器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.043 ms
64 bytes from centos2.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.077 ms
64 bytes from centos2.mynet (192.168.0.3): icmp_seq=3 ttl=64 time=0.065 ms

--- centos2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.043/0.061/0.077/0.016 ms
[root@e98a944fec1e /]# ping centos3 -c 3
ping: centos3: Name or service not known
[root@e98a944fec1e /]#
  • 此时做到了centos1centos2 和centos3 centos3的隔离

(8)实现跨网络的容器互联

如下,设置将容器centos1与mynet2联通,此时centos1将可以与mynet2下所有的docker容器联通

docker network connect mynet2 centos1

如下,可以验证,centos1已经可以与mynet2网络下的centos3和centos4联通

[root@e98a944fec1e /]# ping centos3 -c 3
PING centos3 (192.169.0.2) 56(84) bytes of data.
64 bytes from centos3.mynet2 (192.169.0.2): icmp_seq=1 ttl=64 time=0.063 ms
64 bytes from centos3.mynet2 (192.169.0.2): icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from centos3.mynet2 (192.169.0.2): icmp_seq=3 ttl=64 time=0.066 ms

--- centos3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.063/0.064/0.066/0.006 ms
[root@e98a944fec1e /]#
[root@e98a944fec1e /]# ping centos4 -c 3
PING centos4 (192.169.0.3) 56(84) bytes of data.
64 bytes from centos4.mynet2 (192.169.0.3): icmp_seq=1 ttl=64 time=0.080 ms
64 bytes from centos4.mynet2 (192.169.0.3): icmp_seq=2 ttl=64 time=0.062 ms
64 bytes from centos4.mynet2 (192.169.0.3): icmp_seq=3 ttl=64 time=0.066 ms

--- centos4 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.062/0.069/0.080/0.010 ms
[root@e98a944fec1e /]#

如下可以验证,此时centos2仍然与mynet2下的centos3和centos4不通

[root@e4b7913e1581 /]# ping centos3 -c 3
ping: centos3: Name or service not known
[root@e4b7913e1581 /]# ping centos4 -c 3
ping: centos4: Name or service not known
[root@e4b7913e1581 /]#
相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
相关文章
|
2天前
|
关系型数据库 MySQL 网络安全
Docker部署MySQL,2024网络安全通用流行框架大全
Docker部署MySQL,2024网络安全通用流行框架大全
|
2天前
|
运维 网络协议 Linux
Docker网络_docker 网络,来看看这份超全面的《Linux运维面试题及解析》
Docker网络_docker 网络,来看看这份超全面的《Linux运维面试题及解析》
|
2天前
|
Java 虚拟化 Docker
Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别
Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别
|
2天前
|
存储 Linux Docker
CentOS7修改Docker容器和镜像默认存储位置
CentOS7修改Docker容器和镜像默认存储位置
|
2天前
|
Linux Docker 容器
更改docker容器中的时间而不影响宿主机
更改docker容器中的时间而不影响宿主机
|
2天前
|
Ubuntu Linux Go
docker容器启动报错
docker容器启动报错解决
|
4天前
|
Ubuntu Docker 容器
docker容器保存和导入
docker容器保存和导入
25 0
|
4天前
|
Ubuntu Docker 容器
清理docker容器
清理docker容器
14 0
|
4天前
|
Prometheus 监控 Cloud Native
构建高效稳定的Docker容器监控体系
【5月更文挑战第14天】 在现代微服务架构中,Docker容器作为应用部署的基本单元,其运行状态的监控对于保障系统稳定性和性能至关重要。本文将探讨如何构建一个高效且稳定的Docker容器监控体系,涵盖监控工具的选择、关键指标的采集、数据可视化以及告警机制的设计。通过对Prometheus和Grafana的整合使用,实现对容器资源利用率、网络IO以及应用健康状态的全方位监控,确保系统的高可用性和故障快速响应。
|
4天前
|
Prometheus 监控 Cloud Native
构建高效稳定的Docker容器监控体系
【5月更文挑战第13天】在微服务架构和容器化部署日益普及的背景下,对Docker容器的监控变得尤为重要。本文将探讨一种构建高效稳定Docker容器监控体系的方法,通过集成Prometheus和cAdvisor工具,实现对容器资源使用情况、性能指标和运行状态的实时监控。同时,结合Grafana进行数据可视化,为运维人员提供直观的分析界面,以便及时发现和解决潜在问题,保障系统的高可用性和稳定性。
30 6