了解 docker network

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

  1. docker network --help
  1. Commands:
  2. connect Connect a container to a network
  3. create Create a network
  4. disconnect Disconnect a container from a network
  5. inspect Display detailed information on one or more networks
  6. ls List networks
  7. prune Remove all unused networks
  8. rm Remove one or more networks
  1. docker network create --help
  1. Options:
  2. --attachable Enable manual container attachment
  3. --aux-address map Auxiliary IPv4 or IPv6 addresses used by Network driver (default map[])
  4. --config-from string The network from which to copy the configuration
  5. --config-only Create a configuration only network
  6. -d, --driver string Driver to manage the Network (default "bridge")
  7. --gateway strings IPv4 or IPv6 Gateway for the master subnet # 网关
  8. --ingress Create swarm routing-mesh network
  9. --internal Restrict external access to the network
  10. --ip-range strings Allocate container ip from a sub-range
  11. --ipam-driver string IP Address Management Driver (default "default")
  12. --ipam-opt map Set IPAM driver specific options (default map[])
  13. --ipv6 Enable IPv6 networking
  14. --label list Set metadata on a network
  15. -o, --opt map Set driver specific options (default map[])
  16. --scope string Control the network's scope
  17. --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 网络

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

查看网卡

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

查看网络

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

查看 mynet 网络详细信息

  1. [root@--- ~]# docker network inspect 0096a971fd2c
  2. [
  3. {
  4. "Name": "mynet",
  5. "Id": "0096a971fd2c66400e53cbae5e53eceedc2f90d5685917e9534640a3535c0ef1",
  6. "Created": "2021-10-04T10:18:09.113847736+08:00",
  7. "Scope": "local",
  8. "Driver": "bridge", # mynet 网络类型
  9. "EnableIPv6": false,
  10. "IPAM": {
  11. "Driver": "default",
  12. "Options": {},
  13. "Config": [
  14. {
  15. "Subnet": "192.168.0.0/16", # mynet 子网
  16. "Gateway": "192.168.0.1" # mynet 网关
  17. }
  18. ]
  19. },
  20. "Internal": false,
  21. "Attachable": false,
  22. "Ingress": false,
  23. "ConfigFrom": {
  24. "Network": ""
  25. },
  26. "ConfigOnly": false,
  27. "Containers": {},
  28. "Options": {},
  29. "Labels": {}
  30. }
  31. ]

启动容器,并加入mynet网络

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

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

查看mynet网桥信息

  1. [root@--- ~]# docker network inspect 0096
  2. [
  3. {
  4. "Name": "mynet",
  5. "Id": "0096a971fd2c66400e53cbae5e53eceedc2f90d5685917e9534640a3535c0ef1",
  6. "Created": "2021-10-04T10:18:09.113847736+08:00",
  7. "Scope": "local",
  8. "Driver": "bridge",
  9. "EnableIPv6": false,
  10. "IPAM": {
  11. "Driver": "default",
  12. "Options": {},
  13. "Config": [
  14. {
  15. "Subnet": "192.168.0.0/16",
  16. "Gateway": "192.168.0.1"
  17. }
  18. ]
  19. },
  20. "Internal": false,
  21. "Attachable": false,
  22. "Ingress": false,
  23. "ConfigFrom": {
  24. "Network": ""
  25. },
  26. "ConfigOnly": false,
  27. "Containers": {
  28. "2fac920eebd505794c4a27ef4efdf531d32805e8663bded93a473bd28236bc27": {
  29. "Name": "mynet-centos01",
  30. "EndpointID": "3aff0752e641651a446ec490faa000812417855739086b2edb584ac2a95a26dd",
  31. "MacAddress": "02:42:c0:a8:00:02",
  32. "IPv4Address": "192.168.0.2/16",
  33. "IPv6Address": ""
  34. },
  35. "3dceda051252b6970fe2156bac7710ba6489a97aac68c49b1c85a2f130d0556f": {
  36. "Name": "mynet-tomcat01",
  37. "EndpointID": "9f52b19493d35c48fe9b33a319de5dbe54c50de1a5d049103cb4e39bfe645f1b",
  38. "MacAddress": "02:42:c0:a8:00:03",
  39. "IPv4Address": "192.168.0.3/16",
  40. "IPv6Address": ""
  41. }
  42. },
  43. "Options": {},
  44. "Labels": {}
  45. }
  46. ]

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

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

结论

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

思考问题:

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

答案:不可以

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


我是 甜点cc

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

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

Docker | 自定义网络(网关、子网地址)的更多相关文章

  1. Docker 自定义网络

    1.创建自定义网络 docker network create -d bridge --subnet 172.25.0.0/16 network_name 2.redis docker 添加到网络 d ...

  2. docker自定义网络里的dns实现原理

    简单说一下流程吧,不写了. docker会修改容器里的/etc/resolv.conf文件,把dns服务器设置成127.0.0.11,因为127.0.0.0/8地址都是本机回环地址,所以dns查询的时 ...

  3. 5、Docker容器网络

    使用Linux进行IP层网络管理的指     http://linux-ip.net/html/ # yum install iproute http://linux-ip.net/html/tool ...

  4. docker(4)docker的网络,自定义网桥

    Docker 的网络 运行 ifconfig 找到 docker0 : 虚拟网卡默认网卡名称为docker0 查看docker 的网桥: 我这里默认们没有进行安装 网桥管理设备:进行安装一下: yum ...

  5. 【网络】IP地址,子网掩码,网段表示法,默认网关,DNS服务器详解

    楔子: 以Windows系统中IP地址设置界面为参考(如图1), IP地址, 子网掩码, 默认网关 和 DNS服务器, 这些都是什么意思呢? 学习IP地址的相关知识时还会遇到网络地址,广播地址,子网等 ...

  6. Docker系列(28)- 自定义网络

    自定义网络 网络模式 bridge:桥接docker(默认,自己创建也可以使用bridge模式) none:不配置网络 host:和宿主机共享网络 container:容器网络联通!(用的少!局限性大 ...

  7. docker之 网络模式和跨主机通信

    Docker的四种网络模式Bridge模式 当Docker进程启动时,会在主机上创建一个名为docker0... Docker的四种网络模式 Bridge模式 当Docker进程启动时,会在主机上创建 ...

  8. 一分钟看懂Docker的网络模式和跨主机通信

    文章转载自:http://www.a-site.cn/article/169899.html   Docker的四种网络模式Bridge模式 当Docker进程启动时,会在主机上创建一个名为docke ...

  9. Docker:网络模式详解

    Docker作为目前最火的轻量级容器技术,牛逼的功能,如Docker的镜像管理,不足的地方网络方面. Docker自身的4种网络工作方式,和一些自定义网络模式 安装Docker时,它会自动创建三个网络 ...

随机推荐

  1. 关于Google词向量模型(googlenews-vectors-negative300.bin)的导入问题

    起因 项目中有如下代码: word2vec = KeyedVectors.load_word2vec_format('./GoogleNews-vectors-negative300.bin', bi ...

  2. SQLServer查询进程与死锁语句

    查询当前进程信息: SELECTSPID = er.session_id,Status = ses.status,[Login] = ses.login_name,Host = ses.host_na ...

  3. 高考集训讲课(To 高一)

    高考集训讲课(To 高一) 主要是怕下午讲着讲着把自己讲懵了,有一定的迷糊概率 经过机房的讨论,一致认为插头\(DP\)实用性不大,所以这次不讲了,先把重要的讲一讲. 顺便吐槽一下,凭什么另外几个人都 ...

  4. 基于webgl(threejs)的路面编辑

    楔子 在很多应用中,特别是一些园区类的应用. 都需要对园区的地面 环境进行展示,路面就是地面的一部分. 通常的做法是,都是建模的时候把相关的元素都建好,然后导入到展示系统中进行展示. 不过有些情况下, ...

  5. Redis 06 哈希

    参考源 https://www.bilibili.com/video/BV1S54y1R7SB?spm_id_from=333.999.0.0 版本 本文章基于 Redis 6.2.6 哈希就是 ke ...

  6. 清晰梳理最全日志框架关系与日志配置-SpringBoot 2.7.2 实战基础

    优雅哥 SpringBoot 2.7.2 实战基础 - 07 - 日志配置 Java 中日志相关的 jar 包非常多,log4j.log4j2.commons-logging.logback.slf4 ...

  7. 二 代理模式【Proxy Pattern】 来自CBF4LIFE 的设计模式

    什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被代理的人能干活呀. ...

  8. 开源IPTV源服务程序使用教程

    Streaming-Media-Server-Pro 前言 我的目标是将程序打造成属于每个人的直播源服务,且对每个人完全开源免费!可作为家庭影院电视.视频等流媒体的提供商,兼容全平台,只需下载视频播放 ...

  9. 综合布线 子网掩码 IP地址 子网划分

    1.1 地址协议 ipv4 :目前主流的协议 2. ipv6 :fe80::fe7:ca03:81f:2887 2 128 IANA(The Internet Assigned Numbers Aut ...

  10. std::atomic和std::mutex区别

    ​ ​std::atomic介绍​ ​模板类std::atomic是C++11提供的原子操作类型,头文件 #include<atomic>.​在多线程调用下,利用std::atomic可实 ...