【Docker】 7.Docker Internet

news2024/11/26 4:50:07

文章目录

    • Docker Internet
      • Docker Internet Command
      • Docker Bridge Internet
      • docker Host Internet
      • Docker Container Internet
      • Docker None Internet

Docker Internet

Docker 网络架构采用的设计规范是CNM(Container Network Model)。CNM中规定了Docker网络的基础组成要素:Sandbox,Endpoint、Network

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-shAajP76-1686150461596)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20230604163144104.png)]

Docker Internet Command

命令别名功能
docker network create创建网络
docker network connect链接网络
docker network disconnect断开网络
docker network lsdocker network list列出网络
docker network prune删除不使用网络
docker network inspect查看网络详情
docker network rmdocker network remove删除网络

docker network create 创建网络

docker network create [options] network
-d --drive # 网络驱动
--gateway  # 网关地址
--subnet   # 表示网段的CIDR格式的子网
--ipv6     # 启用ipv6

docker network inspect 查看网络详情

docker network inspect [options] network [network...]
-f --format # 指定格式

[root@VM-20-6-centos ~]# docker network inspect mynet1
[
    {
        "Name": "mynet1",
        "Id": "aebaa2f893e6477fe7ec594820272f38cb7b325845e5d32444de488879d7e5ed",
        "Created": "2023-06-04T16:55:39.854719327+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.0.0/16"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},                     # 哪些容器在使用
        "Options": {},
        "Labels": {}
    }
]

docker network connect

docker network connect [options] network container
--ip  # 指定IP地址
--ip6 # 指定IPv6地址

[root@VM-20-6-centos ~]# docker network connet mynet4 busybox1;
[root@VM-20-6-centos ~]# docker network inspect mynet004
[
    {
        "Name": "mynet004",
        "Id": "bd9ed3d0cf058f215844bc8b067991888702ab68a57c2e27548aa77906fa8cfa",
        "Created": "2023-06-04T21:55:26.65155198+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "10.2.0.0/16"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "dd634166f9b0a87c4dc9f7d525fffd530fc4af65d89b54cb88bf75bc792a8546": {
                "Name": "busybox1",     # busybox1容器已经连入
                "EndpointID": "2387673b05b4b50421f7ca6b0ee63f3684e5ce2b0f16ba16f696d5e928889e9c",
                "MacAddress": "02:42:0a:02:00:02",
                "IPv4Address": "10.2.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

docker network disconnect [options] network container

-f # 强制退出
[root@VM-20-6-centos ~]# docker network disconnect mynet004 busybox1

docker network prune 批量删除不适用的网络

docker network prune [options]
-f --force # 不提示

docker network rm

docker network rm NETWORK [NETWORK...]
-f # 强制退出

docker network list

-f --filter  # 指定过滤条件
--format     # 指定格式
--no-trunc   # 不截断
-q           # 仅显示ID

网络命令基本操作

# 两种方式加入网络,两种方式结果不一样

[root@VM-20-6-centos ~]# docker run -itd --network mynet6 --name busybox3 busybox
af5b41153161d5fa6428205977636b2982db54e0fd87f33b3d936ab55f9326c7
[root@VM-20-6-centos ~]#  clear
[root@VM-20-6-centos ~]# docker network inspect mynet6
"Networks": {
                "mynet6": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": [
                        "af5b41153161"
                    ],
                    "NetworkID": "5ed9068427b809af45a98db6bdabc17703856654d087722fe5bebdca0d57044b",
                    "EndpointID": "28fe48eceb5697b3ec9a5f9f9ea9baa302a0a4033b27fb00216168a57f5057f3",
                    "Gateway": "172.21.0.1",
                    "IPAddress": "172.21.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:15:00:02",
                    "DriverOpts": null
                }
            }
            
# 若创建容器时不指定network,那么会默认被假如bridge 网络
[root@VM-20-6-centos ~]# docker run -itd --name busybox4 busybox
5931f3c0ceea60f2f79ddb70ddcb3da94a724f34d11f308d2cdd5d4c0ab9dc1b
[root@VM-20-6-centos ~]# docker inspect busybox4
"Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "af6c09c844aa46bff72e8ef34357a45a27c8558827f979c0fa78826c33949cac",
                    "EndpointID": "f3aeba6d862b047cdcd6db9f138ea3e44226788c302bd109f94fbf9b85e465f5",
                    "Gateway": "172.17.0.1",       # 网关 
                    "IPAddress": "172.17.0.30",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:1e",
                    "DriverOpts": null
                }
            }
[root@VM-20-6-centos ~]# ifconfig
# docker0 桥的网关就是172.0.0.1 如果没有指定则默认加入到docker0
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:e5ff:fefb:8bb8  prefixlen 64  scopeid 0x20<link>
        ether 02:42:e5:fb:8b:b8  txqueuelen 0  (Ethernet)
        RX packets 12480  bytes 1033554 (1009.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14808  bytes 104796010 (99.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# 加入网络mynet6
[root@VM-20-6-centos ~]# docker network connect mynet6 busybox4
[root@VM-20-6-centos ~]# docker inspect busybox4
# 可以看到加入了两个网络,如果创建时直接指定可能会遗漏bridge网络
"Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "af6c09c844aa46bff72e8ef34357a45a27c8558827f979c0fa78826c33949cac",
                    "EndpointID": "f3aeba6d862b047cdcd6db9f138ea3e44226788c302bd109f94fbf9b85e465f5",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.30",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:1e",
                    "DriverOpts": null
                },
                "mynet6": {
                    "IPAMConfig": {},
                    "Links": null,
                    "Aliases": [
                        "5931f3c0ceea"
                    ],
                    "NetworkID": "5ed9068427b809af45a98db6bdabc17703856654d087722fe5bebdca0d57044b",
                    "EndpointID": "cbc866887382d6e4f5565a2f80e4252c257d2297a4d2ba27a381a2078262dd7c",
                    "Gateway": "172.21.0.1",
                    "IPAddress": "172.21.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:15:00:03",
                    "DriverOpts": {}
                }
            }

Docker Bridge Internet

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ksopjRF7-1686150461600)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20230604224434363.png)]

Docker 自定义桥接网络是支持通过Docker DNS服务进行域名解析的,也就是说我们可以直接使用容器名进行通信,因为DNS服务可以解析容器名到IP地址的映射,但是默认的bridge网络是不支持DNS的



[root@VM-20-6-centos ~]# docker run -itd --name busybox007 --network mybridge busybox
2c6b7aced7c95ae33e97b5cd20df3827d15dd775fc94ce6ef6ca8e00857a0cca
[root@VM-20-6-centos ~]# docker run -itd --name busybox008 --network mybridge busybox
f5a303aa3f33ad3a65e98d5bbd48b1a3a7590ae4fa05ffc559d776d808c0b896
[root@VM-20-6-centos ~]# docker exec -it busybox007 sh
/ # ping busybox008
PING busybox008 (172.22.0.3): 56 data bytes
64 bytes from 172.22.0.3: seq=0 ttl=64 time=0.138 ms
64 bytes from 172.22.0.3: seq=1 ttl=64 time=0.126 ms
^C
--- busybox008 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.126/0.132/0.138 ms

docker Host Internet

Docker 容器运行默认都会分配独立的 Network Namespace 隔离子系统, 但是如果基于 host 网络模式,容器将不会获得一个独立的 Network Namespace,而是和宿主机共用同一个 Network Namespace,容器将不会虚拟出自己的网卡,IP 等,而是直接使用宿主机的 IP 和端口。
在这里插入图片描述

Docker Container Internet

[root@VM-20-6-centos ~]# docker run -itd --name busybox012 busybox
a90e72e93973fb44f1ed0ad6aeae9dfdc2304aee8b314317143674eba4fe0458
[root@VM-20-6-centos ~]# docker rm busybox013
busybox013
[root@VM-20-6-centos ~]# docker run -itd --name busybox013 --network container:busybox012 busybox
ef2ba6512b87981341c052c2ba9ecac1fb96bd85471ace2686f619ef6cda1b2e

# 可以看到busybox013的网络部分是空的
[root@VM-20-6-centos ~]# docker inspect busybox013
"NetworkSettings": {
            "Bridge": "",
            "SandboxID": "",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {}
        }
# 进入两个容器输入ifconfig 可以看到两个容器的IP地址一摸一样

# 将busybox012停了,发现busybox013的网络也没了
[root@VM-20-6-centos ~]# docker stop busybox012
busybox012
[root@VM-20-6-centos ~]# docker exec -it busybox013 sh
/ # ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

# 重启宿主容器发现busybox013网络还没有恢复,需要重启busybox013才可以重新恢复网络
[root@VM-20-6-centos ~]# docker restart busybox012
busybox012
[root@VM-20-6-centos ~]# docker exec -it busybox013 sh
/ # ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)



Docker None Internet

none网络就是指没有网络。挂在这个网络下的容器除了lo(本地回环),没有任何其它网卡。

使用场景:
1、 针对一些对安全性要求比较高并且不需要联网的应用,可以使用None网络,比如生成随机密码,避免生成的密码被第三方获取
2、一些第三方容器可能需要Docker 帮忙创建一个没有网络的容器,网络由第三方进行配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/621586.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RK3588平台开发系列讲解(同步与互斥篇)自旋锁死锁实验

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、自旋锁死锁二、实验程序的编写2.1、驱动程序编写2.2、编写测试 APP沉淀、分享、成长,让自己和他人都能有所收获!😄 📢自旋锁若是使用不当就会产生死锁,在本篇将会对自旋锁的特殊情况-死锁进行讲解。 一、自…

0801详解-redux-react

文章目录 1 redux1.1 概述1.2 示例实现页面数字的加、减1.3 异步加-异步action 2 react-redux2.1 概述2.2 优化示例代码 3 数据共享4 redux开发者工具5 小结5.1 求和案例_redux精简版5.2 求和案例_redux完整版5.3 求和案例_redux异步action版5.4 求和案例_react-redux基本使用5…

【哈士奇赠书活动 - 25期】-〖Python自动化办公应用大全(ChatGPT版) 〗

文章目录 ⭐️ 赠书 - 《Python自动化办公应用大全&#xff08;ChatGPT版&#xff09;》⭐️ 内容简介⭐️ 作者简介⭐️ 编辑推荐⭐️ 赠书活动 → 获奖名单 ⭐️ 赠书 - 《Python自动化办公应用大全&#xff08;ChatGPT版&#xff09;》 ⭐️ 内容简介 本书全面系统地介绍了P…

使用YOLOv5实现图片、视频的目标检测

推断的准备工作 接下来我将从官方代码开始&#xff0c;一步一步展示如何进行图片、视频识别 首先从GitHub下载官方代码&#xff08;也可以从下面链接获取&#xff09;&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/16wzV899D90TY2Xwhx4TwhA 提取码&#xff1a;vzvj …

MYSQL必知必会,详尽入门,一文帮你学会SQL必知必会

目录 前言 数据库的概念和术语 SQL语言和组成 DDL show : 展示当前已有的数据库或者表 create &#xff1a;创建一个数据库或者一个表 drop &#xff1a;删除表、数据库对象或者视图 alter &#xff1a;修改现有的数据库对象&#xff0c;例如 修改表的属性或者字段 (…

geth下载安装配置环境及联盟链的搭建

以太坊概论考察课 更具课堂教学讲解&#xff0c;参考开放资料。使用所学的知识&#xff0c;创建项目并完成要求的内容。包含的功能和要求具体如下&#xff1a; 一&#xff1a;安装并运行geth客户端 1、下载安装geth 首先下载geth&#xff1a;https://geth.ethereum.org/dow…

javaScript蓝桥杯---视频弹幕

目录 一、介绍二、准备三、⽬标四、代码五、完成 一、介绍 弹幕指直接显现在视频上的评论&#xff0c;可以以滚动、停留甚⾄更多动作特效⽅式出现在视频上&#xff0c;是观看视频的⼈发送的简短评论。通过发送弹幕可以给观众⼀种“实时互动”的错觉&#xff0c;弹幕的出现让观…

Segment Anything Model (SAM)——卷起来了,那个号称分割一切的CV大模型他来了

最近每天打开微信看到10个公众号里面差不多有11个都在各种玩赚chatGPT&#xff0c;每个都在说是各种大好风口&#xff0c;哎&#xff0c;看得眼睛都是累的。 今天下午无意间看到Meta发布了一款号称能分割一切的CV大模型&#xff0c;CV圈也开始卷起来&#xff0c;今年各种大模型…

chatgpt赋能python:Python在图片处理方面的应用

Python在图片处理方面的应用 在当今数字化的时代&#xff0c;图像处理已成为不可避免的技术。越来越多的业务需要对图片进行处理、识别和分析。Python是一种易于使用且适合处理图像的编程语言。Python中有许多图像处理库&#xff0c;例如Pillow、Scikit-Image和OpenCV等&#…

基于BP神经网络的PID智能控制

基于BP神经网络的PID智能控制 基于BP神经网络的PID整定原理经典的增量式数字PID控制算法为&#xff1a;BP神经网络结构&#xff1a;学习算法仿真模型Matlab代码仿真效果图结论python仿真参考文献 基于BP神经网络的PID整定原理 PID控制要获得较好的控制效果&#xff0c;就必须通…

山东大学单片机原理与应用实验 3.4 矩阵键盘扫描实验

目录 一、实验题目 二、实验要求 三、实验过程及结果记录 1. 在Proteus 环境下建立图1所示原理图&#xff0c;并将其保存为keyscan_self.DSN 文件。 2. 编写控制源程序&#xff0c;将其保存为keyscan_self.asm 或keyscan_self.c。 3. 将源程序添加到U1 中&#xff0c;并构…

chatgpt赋能python:Python如何将空格变成换行

Python如何将空格变成换行 Python是一种流行的编程语言&#xff0c;有着许多实用的功能和库。在这篇文章中&#xff0c;我们将介绍如何使用Python将空格变成换行的方法。这是一种有用的技巧&#xff0c;可以帮助你在处理文本时更加方便。 为什么需要将空格变成换行 将空格变…

eNSP数据抓包时弹不出Wireshark.exe

文章目录 原因&#xff1a;wireshark的版本问题解决方法&#xff1a;操作例图 原因&#xff1a;wireshark的版本问题 上述2.6.6版本安装后&#xff0c;ensp工具路径正确&#xff0c;数据抓包也始终打不开wireshark&#xff0c;但是直接打开是可以打开的。安装3.6.3版本后&#…

零基础使用ChatGPT写一个小游戏---文末附源码

ChatGPT&#xff1a;赋能自然语言处理的多种应用领域 ChatGPT是当今最先进的人工智能对话系统之一&#xff0c;已经被证明可以支持许多不同的自然语言处理应用程序。以下是ChatGPT可以运行的几个领域&#xff1a; 聊天机器人 ChatGPT作为一个建立在自然语言处理技术上的人工…

chatgpt赋能python:Python数据拟合

Python 数据拟合 在数据分析和机器学习领域&#xff0c;数据拟合是非常重要的一步。Python作为一种流行的编程语言&#xff0c;在数据拟合方面拥有强大的工具和库&#xff0c;因此被广泛使用。本文将介绍Python中常用的一些数据拟合方法&#xff0c;并演示如何使用它们。 线性…

200道网络安全常见面试题合集(附答案解析+配套资料)

有不少小伙伴面临跳槽或者找工作&#xff0c;本文总结了常见的安全岗位面试题&#xff0c;方便各位复习。祝各位事业顺利&#xff0c;财运亨通。在网络安全的道路上越走越远&#xff01; 所有的资料都整理成了PDF&#xff0c;面试题和答案将会持续更新&#xff0c;因为无论如何…

宝塔-如何部署自己的nodejs项目并跑起来【已解决】

我自己做了一个项目&#xff0c;前端后端都是自己做&#xff0c;后端就用的nodejs写的接口&#xff0c;但是本地每次访问都要启动一次&#xff0c;所以我准备放到服务器上&#xff0c;这样接口就能一直跑了 先看效果 这里可以看到我现在是本地的ip在访问接口&#xff0c;以为我…

什么是端到端解决方案

通过“端到端”流程打通&#xff0c;将各相关部门的业务环节衔接起来&#xff0c;消灭“断头路”&#xff0c;不断提高内部的效率并满足客户的需求&#xff0c;最终实现企业效益最大化。 不同语境下的端到端 端到端在不同领域有多重含义&#xff0c;是一个非常复杂且抽象的名…

机器学习算法:UMAP 深入理解

导读 降维是机器学习从业者可视化和理解大型高维数据集的常用方法。最广泛使用的可视化技术之一是 t-SNE&#xff0c;但它的性能受到数据集规模的影响&#xff0c;并且正确使用它可能需要一定学习成本。 UMAP 是 McInnes 等人开发的新算法。与t-SNE相比&#xff0c;它具有许多…

4090 深度学习性能实测

测试结果 测试平台&#xff1a; 显卡&#xff1a;影驰金属大师4090 cpu&#xff1a;i7 12700k 测试方法 李沐老师micro-benchmarkings B站视频 测试 1.矩阵计算速度 transformer的核心操作是矩阵乘法&#xff0c;通过测试矩阵计算的tflops可以得到硬件的计算上限。 ma…