千家信息网

怎么使用docker中host和none

发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,本篇内容主要讲解"怎么使用docker中host和none",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用docker中host和none"吧!no
千家信息网最后更新 2025年02月06日怎么使用docker中host和none

本篇内容主要讲解"怎么使用docker中host和none",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用docker中host和none"吧!

none Network

首先介绍none类型的Network。

网络模式为 none,即不为 Docker 容器构造任何网络环境。一旦Docker 容器采用了none 网络模式,那么容器内部就只能使用loopback网络设备,不会再有其他的网络资源。Docker Container的none网络模式意味着不给该容器创建任何网络环境,容器只能使用127.0.0.1的本机网络。

首先看一下我们的网络:

 duandingyang@duandingyangdeMacBook-Pro  ~/docker/ubuntu-16.04  docker network lsNETWORK ID          NAME                DRIVER              SCOPE6862ec731e70        bridge              bridge              local27b794790b92        host                host                localc0ccd5a52bf1        none                null                local

创建一个none类型的容器:

docker run -it  --name test1 --network none vincent/ubuntu-base /bin/bash

查看none网络的详细信息:

docker network inspect none[    {        "Name": "none",        "Id": "c0ccd5a52bf1a09e45ca879e9a2dd32d6987b7d43bd01e0924af501510af4c26",        "Created": "2019-06-29T08:14:06.043680652Z",        "Scope": "local",        "Driver": "null",        "EnableIPv6": false,        "IPAM": {            "Driver": "default",            "Options": null,            "Config": []        },        "Internal": false,        "Attachable": false,        "Ingress": false,        "ConfigFrom": {            "Network": ""        },        "ConfigOnly": false,        "Containers": {            "9a7ce6d97102fb8d820d4a649a4d5844e6490e64416267da2dc255ebd4c7688c": {                "Name": "test1",                "EndpointID": "8914a0bd63984e018cc4ce9f629e964941030a63277df13fc78175954bededfc",                "MacAddress": "",                "IPv4Address": "",                "IPv6Address": ""            }        },        "Options": {},        "Labels": {}    }]

可以看到test1容器的ip为空。

进入到容器中查看ifconfig:

root@9a7ce6d97102:/usr# ifconfiglo        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:1          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

我们发现只有一个lo网卡。没有其他的网卡。意味着test1容器所在的namespace是一个孤立的Network namespace。除了使用docker exec -it test1 /bin/bash这种方式访问容器外,没有任何方式可以访问容器了。

那么这种容器存在的意义是什么呢?

当安全性要求比较高的时候,存储密码等工具可以用这种方式实现。

host Network

Host 模式并没有为容器创建一个隔离的网络环境。而之所以称之为host模式,是因为该模式下的 Docker 容器会和 host 宿主机共享同一个网络 namespace,故 Docker Container可以和宿主机一样,使用宿主机的eth0,实现和外界的通信。换言之,Docker Container的 IP 地址即为宿主机 eth0 的 IP 地址。其特点包括:


    • 这种模式下的容器没有隔离的 network namespace

    • 容器的 IP 地址同 Docker host 的 IP 地址

    • 需要注意容器中服务的端口号不能与 Docker host 上已经使用的端口号相冲突

    • host 模式能够和其它模式共存

将上面的test1容器停止,并删除容器。

创建host Network容器:

docker run -it  --name test1 --network host vincent/ubuntu-base /bin/bash

查看host网络信息:

docker network inspect host[    {        "Name": "host",        "Id": "27b794790b9286a90285386b1ddd4d1703668e1b57b9e0dd47261c86de52452b",        "Created": "2019-06-29T08:14:06.08051536Z",        "Scope": "local",        "Driver": "host",        "EnableIPv6": false,        "IPAM": {            "Driver": "default",            "Options": null,            "Config": []        },        "Internal": false,        "Attachable": false,        "Ingress": false,        "ConfigFrom": {            "Network": ""        },        "ConfigOnly": false,        "Containers": {            "c56f09a40a89293affb4120ac698c1add5796d871683c1ded162b44bd2f5a7ba": {                "Name": "test1",                "EndpointID": "969c508af1d2448c4b1028f80ee0b4aca2fa7856a2c3c92f4def251781bf6488",                "MacAddress": "",                "IPv4Address": "",                "IPv6Address": ""            }        },        "Options": {},        "Labels": {}    }]

可以看到test1同样没有ip地址和mac地址。

进入到容器中查看ifconfig:

root@linuxkit-025000000001:/usr# ifconfigdocker0   Link encap:Ethernet  HWaddr 02:42:27:c4:e8:bd          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0          inet6 addr: fe80::42:27ff:fec4:e8bd/64 Scope:Link          UP BROADCAST MULTICAST  MTU:1500  Metric:1          RX packets:108020 errors:0 dropped:0 overruns:0 frame:0          TX packets:260692 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:4347447 (4.3 MB)  TX bytes:381499475 (381.4 MB)eth0      Link encap:Ethernet  HWaddr 02:50:00:00:00:01          inet addr:192.168.65.3  Bcast:192.168.65.255  Mask:255.255.255.0          inet6 addr: fe80::50:ff:fe00:1/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:261768 errors:0 dropped:0 overruns:0 frame:0          TX packets:109131 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:381626776 (381.6 MB)  TX bytes:5951813 (5.9 MB)lo        Link encap:Local Loopback          inet addr:127.0.0.1  Mask:255.0.0.0          inet6 addr: ::1/128 Scope:Host          UP LOOPBACK RUNNING  MTU:65536  Metric:1          RX packets:2 errors:0 dropped:0 overruns:0 frame:0          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1          RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)

发现他的网卡与我们的宿主机上是很相似的。

通过host方式创建的容器,没有独立的Network namespace,跟我们的主机的Network namespace共享。

使用这种方式会出现ip冲突和端口冲突

到此,相信大家对"怎么使用docker中host和none"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

容器 网络 模式 地址 宿主 方式 宿主机 环境 网卡 冲突 信息 内容 口号 意味 类型 学习 隔离 实用 更深 相似 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 电脑软件开发培训考证机构 阿里云怎么看服务器流量多少 大话西游2浮生一梦服务器 浦发银行社招软件开发 杭州今元网络技术有限公司简介 软件开发方向怎么学 美团借钱服务器异常怎么回事 nas服务器远程密码锁 安卓软件开发服 流量宝为什么连接不上通讯服务器 通州区发展软件开发差异 广东高清视频会议服务器供应商 怎么取数组里的部分数据库 服务器解除ban 网上学习软件开发 关系数据库的各项操作的目的 大华监控服务器登陆 呼和浩特网络安全技术培训班 我的世界服务器价格表 可以使用代理服务器的电视盒子 王牌战士各个服务器玩家数量 主机与服务器吗 邮件服务器下载 空军部队 计算机网络技术 中学生关于网络安全的资料 为想互联网科技 怎么样 版纳软件开发专业招生 三职计算机网络技术 沙漠叛乱老被服务器踢 超微服务器如何做磁盘阵列
0