了解 docker network

通过下面的命令来获取帮助

  1. docker network --help
Commands:connect     Connect a container to a networkcreate      Create a networkdisconnect  Disconnect a container from a networkinspect     Display detailed information on one or more networksls          List networksprune       Remove all unused networksrm          Remove one or more networks
  1. docker network create --help
Options:--attachable           Enable manual container attachment--aux-address map      Auxiliary IPv4 or IPv6 addresses used by Network driver (default map[])--config-from string   The network from which to copy the configuration--config-only          Create a configuration only network-d, --driver string        Driver to manage the Network (default "bridge")--gateway strings      IPv4 or IPv6 Gateway for the master subnet   # 网关--ingress              Create swarm routing-mesh network--internal             Restrict external access to the network--ip-range strings     Allocate container ip from a sub-range--ipam-driver string   IP Address Management Driver (default "default")--ipam-opt map         Set IPAM driver specific options (default map[])--ipv6                 Enable IPv6 networking--label list           Set metadata on a network-o, --opt map              Set driver specific options (default map[])--scope string         Control the network's scope--subnet strings       Subnet in CIDR format that represents a network segment  #子网

创建网络

  • –driver bridge 网络类型,默认bridge网桥
  • –subnet 192.168.0.0/16 子网
  • –gateway 192.168.0.1 网关

创建 mynet 网络

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

查看网卡

[root@--- ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:16:3e:0a:00:34 brd ff:ff:ff:ff:ff:ffinet 172.31.81.32/20 brd 172.31.95.255 scope global dynamic eth0valid_lft 291870572sec preferred_lft 291870572sec
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:a4:2f:c5:62 brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 brd 172.17.255.255 scope global docker0valid_lft forever preferred_lft forever
140: br-799426d70aa2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:7f:01:1d:00 brd ff:ff:ff:ff:ff:ffinet 172.18.0.1/16 brd 172.18.255.255 scope global br-799426d70aa2     # test-networkvalid_lft forever preferred_lft forever
176: br-0096a971fd2c: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:d9:14:c1:d3 brd ff:ff:ff:ff:ff:ffinet 192.168.0.1/16 brd 192.168.255.255 scope global br-0096a971fd2c   # mynet valid_lft forever preferred_lft forever

查看网络

[root@--- ~]# docker network ls
NETWORK ID     NAME           DRIVER    SCOPE
feafa30d4051   bridge         bridge    local
e8bf4fced9e2   host           host      local
0096a971fd2c   mynet          bridge    local  # 自定义bridge网桥
6263db0933b9   none           null      local
799426d70aa2   test-network   bridge    local

查看 mynet 网络详细信息

[root@--- ~]# docker network inspect 0096a971fd2c
[{"Name": "mynet","Id": "0096a971fd2c66400e53cbae5e53eceedc2f90d5685917e9534640a3535c0ef1","Created": "2021-10-04T10:18:09.113847736+08:00","Scope": "local","Driver": "bridge",  # mynet 网络类型"EnableIPv6": false,"IPAM": {"Driver": "default","Options": {},"Config": [{"Subnet": "192.168.0.0/16",   # mynet 子网"Gateway": "192.168.0.1"      # mynet 网关}]},"Internal": false,"Attachable": false,"Ingress": false,"ConfigFrom": {"Network": ""},"ConfigOnly": false,"Containers": {},"Options": {},"Labels": {}}
]

启动容器,并加入mynet网络

启动 mynet-centos01 , mynet-tomcat01 并加入mynet网络

[root@--- ~]# docker run -it -P --name mynet-tomcat01 --net mynet tomcat
[root@--- ~]# docker run -it -P --name mynet-centos01 --net mynet centos

查看mynet网桥信息

[root@--- ~]# docker network inspect 0096
[{"Name": "mynet","Id": "0096a971fd2c66400e53cbae5e53eceedc2f90d5685917e9534640a3535c0ef1","Created": "2021-10-04T10:18:09.113847736+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": {"2fac920eebd505794c4a27ef4efdf531d32805e8663bded93a473bd28236bc27": {"Name": "mynet-centos01","EndpointID": "3aff0752e641651a446ec490faa000812417855739086b2edb584ac2a95a26dd","MacAddress": "02:42:c0:a8:00:02","IPv4Address": "192.168.0.2/16","IPv6Address": ""},"3dceda051252b6970fe2156bac7710ba6489a97aac68c49b1c85a2f130d0556f": {"Name": "mynet-tomcat01","EndpointID": "9f52b19493d35c48fe9b33a319de5dbe54c50de1a5d049103cb4e39bfe645f1b","MacAddress": "02:42:c0:a8:00:03","IPv4Address": "192.168.0.3/16","IPv6Address": ""}},"Options": {},"Labels": {}}
]

进入 mynet-centos01 测试连接 mynet-tomcat01

# 发现通过容器ip和容器名都可以连接[root@--- ~]# docker exec -it 2fac920eebd5 /bin/sh
sh-4.4# ping
sh-4.4# ping 192.168.0.3   # 通过容器ip连接
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.
64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=0.140 ms
64 bytes from 192.168.0.3: icmp_seq=2 ttl=64 time=0.110 ms
^C
--- 192.168.0.3 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.110/0.121/0.140/0.016 mssh-4.4# ping mynet-tomcat01   # 通过容器名连接
PING mynet-tomcat01 (192.168.0.3) 56(84) bytes of data.
64 bytes from mynet-tomcat01.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.078 ms
64 bytes from mynet-tomcat01.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.131 ms
^C
--- mynet-tomcat01 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.078/0.110/0.131/0.026 ms
sh-4.4#

结论

在同一网络下的容器,发现通过容器ip容器名都可以连接

思考问题:

其它网络下的容器可以直接访问mynet网络下的容器吗?

答案:不可以

解决方法: 让别的网络下的容器加入到mynet网络下


我是 甜点cc

热爱前端,也喜欢专研各种跟本职工作关系不大的技术,技术、产品兴趣广泛且浓厚,等待着一个创业机会。本号主要致力于分享个人经验总结,希望可以给一小部分人一些微小帮助。

希望能和大家一起努力营造一个良好的学习氛围,为了个人和家庭、为了我国的互联网物联网技术、数字化转型、数字经济发展做一点点贡献。数风流人物还看中国、看今朝、看你我。

Docker | 自定义网络(网关、子网地址)相关推荐

  1. Docker原生网络、自定义网络、Docker容器通信、跨主机容器网络

    Docker原生网络.自定义网络.Docker容器通信.跨主机容器网络 Docker原生网络 bridge Host none Docker自定义网络 自定义bridge overlay macvia ...

  2. Docker的网络模式及数据管理

    目录 Docker四种网络模式 docker自定义网络 查看网络模式列表 查看容器信息(包含配置.环境.网关.挂载.cmd等等信息) 指定分配容器IP地址 自定义网络固定IP 端口映射 在宿主机环境执 ...

  3. Docker学习:容器五种(3+2)网络模式 | bridge模式 | host模式 | none模式 | container 模式 | 自定义网络模式详解

    前言 本讲是从Docker系列讲解课程,单独抽离出来的一个小节,重点介绍容器网络模式, 属于了解范畴,充分了容器的网络模式,更有助于更好的理解Docker的容器之间的访问逻辑. 疑问:为什么要了解容器 ...

  4. Docker 容器互联 --link 和 自定义网络

    [Docker那些事]系列文章 Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT指令的区别 构建Docker镜像指南,含实战 ...

  5. 容器技术-Docker 网络03-用户自定义网络-网络命令的使用

    基于 Docker18.09.0 Docker 系列文章目录 安装Docker和容器管理 Docker镜像管理 Dockerfile详解 Docker数据卷管理 Docker网络之默认网络 Docke ...

  6. 【docker系列】四种基础网络模式及自定义网络

    文章目录 一.docker网络顶层设计 二.CNM三要素 三.默认创建的网络 四.bridge网络模式(默认) 五.none网络模式 六.host网络模式 七.container复用模式 八.自定义b ...

  7. Docker-高级篇(2)-Docker四大网络自定义网络

    文章目录 一.宿主机网络 二.Docker网络 三.网络模式 3.1 bridge模式 3.2 host模式 3.3 none模式 3.4 container模式 四.网络IP生产规则 五.自定义网络 ...

  8. Docker 自定义容器网络

    CNM&libnetwork libnetwork是Docker团队将Docker的网络功能从Docker的核心代码中分离出来形成的一个单独的库,libnetwork通过插件的形式为Docke ...

  9. IP地址、子网掩码、192.168.1.0/24是什么意思 -子网 -网络 -广播地址 -主机地址

    文章目录 192.168.1.0/24是什么意思 IP地址的组成 分类 网络地址和主机地址 A类IP地址 B类IP地址 C类IP地址 子网掩码 分类 缺省子网掩码 自定义子网掩码 子网 超网 IP地址 ...

最新文章

  1. 2022-2028年中国金属薄膜行业市场深度监测及投资潜力研究报告
  2. 分子排列不同会导致_原子或分子之间的作用力是什么力?
  3. windows——celery
  4. 谈谈对线程与进程的理解
  5. 把tensor转为numpy_如何在TensorFlow中将张量转换为numpy数组?
  6. 让线程等待10秒_把python程序变成多线程
  7. 全国计算机等级考试题库二级C操作题100套(第81套)
  8. 03-06 APP-UI自动化测试-等待方式
  9. 什么是线索评分?如何让线索评分发挥作用?
  10. 重写ArrayAdapter
  11. CFS调度主要代码分析二
  12. python---数据清洗
  13. ansys workbench汉化教程_【软件下载】——“冰点文库”使用教程及配套安装包(无广告插件)...
  14. 市电220V说的是峰峰值还是有效值呢?
  15. linux下dft计算标准函数,FFT/DFT计算方法
  16. Task.Yield()和Task.CompletedTask有什么不同
  17. photoshop之合并图层
  18. matlab计算图像的曲率半径
  19. 大数据文字游戏_什么是大数据?
  20. mysql 从a到z 查询_mysql 查询数据时按照A-Z顺序排序返回结果集

热门文章

  1. 2020上海ICPC现场赛 C Sum of Log
  2. repo 忽视本地修改,强制恢复初始
  3. 大话西游2服务器维护公告,大话西游2经典版:2019年05月09日停机维护公告
  4. 计算机引导原理,计算机启动原理与多重引导.ppt
  5. 安卓内部存储之数据库存储
  6. 关于谷歌浏览器不能用flash插件的问题
  7. python刷题大杂烩
  8. Java自学指南四、书籍
  9. 如何快速转行做产品经理
  10. 将echarts图表数据导出成表格