百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Docker 网络命令

bigegpt 2024-09-14 00:11 10 浏览

docker network 命令用于管理 Docker 网络。它允许你创建、检查、列出、连接、断开和删除 Docker 网络。下面是一些常用的子命令和使用 docker 网络命令的示例:

该命令提供在 Docker 主机上创建的所有网络的列表。下面是使用方法:

docker network ls

运行该命令后,Docker 会输出一个表格,其中包含每个网络的信息,包括 ID、名称、驱动程序和范围(本地或全局)。输出结果如下

NETWORK ID     NAME            DRIVER    SCOPE
abcdef123456   bridge          bridge    local
ghijkl789012   host            host      local
mnopqr345678   my-network      bridge    local
stuvwx901234   my-overlay-net  overlay   swarm

在此示例输出中

  1. --IP-range 172.18.0.0/24:定义可分配给该网络上容器的 IP 地址范围。

docker network ls 命令可用于快速检查系统中现有的 Docker 网络及其基本属性。

要检查某个 Docker 网络并查看其详细信息,可以使用 docker network inspect 命令,后面跟上网络名称或 ID。

docker network inspect NETWORK_NAME_OR_ID

用要检查的 Docker 网络的实际名称或 ID 替换 NETWORK_NAME_OR_ID。例如,如果要检查名为 my-network 的网络,可以使用

docker network inspect my-network

docker network inspect 命令的输出会提供指定网络的全面详细信息,包括其配置、连接到该网络的容器、IP 地址范围等。这些信息以 JSON 格式呈现。

输出示例

[
  {
            "Name": "my-network",
            "Id": "abcdef1234567890",
            "Created": "2022-01-01T12:00:00Z",
            "Scope": "local",
            "Driver": "bridge",
            "EnableIPv6": false,
            "IPAM": {
                          "Driver": "default",
                          "Options": null,
                          "Config": [
                            {
                                                  "Subnet": "172.18.0.0/16",
                                                  "Gateway": "172.18.0.1"
                            }
                                        ]
                      },
            "Internal": false,
            "Containers": {
                          "container1": {
                                            "Name": "container1",
                                            "EndpointID": "xyz123456789",
                                            "MacAddress": "02:42:ac:11:00:02",
                                            "IPv4Address": "172.18.0.2/16",
                                            "IPv6Address": ""
                                        },
                          "container2": {
                                            "Name": "container2",
                                            "EndpointID": "abc987654321",
                                            "MacAddress": "02:42:ac:11:00:03",
                                            "IPv4Address": "172.18.0.3/16",
                                            "IPv6Address": ""
                          }
                      },
            "Options": {},
            "Labels": {}
  }
  ]

输出结果包含网络名称、ID、创建时间、驱动程序、IP 地址管理 (IPAM) 配置、连接的容器和其他选项等信息。这些信息对于排除故障、管理网络配置或了解 Docker 中的网络设置非常有用。

要创建 Docker 网络,可以使用 docker network create 命令,然后输入所需的选项和网络名称。

docker network create my-network

该命令使用默认网桥驱动程序和默认选项创建名为 my-network 的 Docker 网络。如果你想指定其他选项,如网络驱动程序、子网、网关或其他配置,可以在命令中包含这些选项。

下面是一个使用自定义选项创建 Docker 网络的示例:

docker network create \
  --driver bridge \
    --subnet 172.18.0.0/16 \
  --gateway 172.18.0.1 \
  --ip-range 172.18.0.0/24 \
  my-custom-network

在这个例子中

  1. my-network 是要连接容器的网络名称。

运行 docker network create 命令后,Docker 将根据提供的配置创建指定的网络。你可以使用 docker network ls 命令列出 Docker 主机上的所有网络,以验证网络是否已创建。

要将 Docker 容器连接到网络,可以使用 docker network connect 命令,然后输入网络名称和容器名称或 ID。

docker network connect my-network my-container

在这个例子中

  1. my-network 是要断开容器连接的网络名称。

运行此命令后,指定容器(my-container)将连接到 my-network 网络。这样,容器就可以使用容器名称或网络中的 IP 地址与同一网络中的其他容器通信。

要断开 Docker 容器与网络的连接,可以使用 docker network disconnect 命令,然后输入网络名称和容器名称或 ID。

docker network disconnect my-network my-container

在这个例子中

  1. my-container 是要断开网络连接的容器的名称或 ID。

运行此命令后,指定容器(my-container)将与 my-network 网络断开连接。这意味着该容器将无法再与该网络上的其他容器通信,尽管它可能仍连接到其他网络或拥有自己的网络命名空间。

要移除一个 Docker 网络,可以使用 docker network rm 命令,然后输入要移除的网络名称或 ID。

docker network rm my-network
  1. --subnet=192.168.1.0/24指定新 IPAM 配置的子网。您可以根据网络要求调整子网。

运行此命令后,Docker 将删除指定的网络 (my-network)。任何专门连接到该网络的容器都将断开与该网络的连接。不过,如果一个容器连接了多个网络,其中一个被删除后,该容器仍会与其他网络连接。

docker network prune 命令用于删除系统中所有未使用的 Docker 网络。未使用的网络是指没有连接到任何容器的网络。通过删除不再使用的网络,该命令有助于清理 Docker 环境。

docker network prune

在不带任何选项的情况下运行 docker network prune 时,Docker 会提示你确认是否要删除所有未使用的网络。你可以输入 "y",然后按 Enter 键继续删除。

如果想跳过确认提示,可以使用 -f 或 --force选项:

docker network prune -f

该命令将立即删除所有未使用的网络,而无需请求确认。

注意 - 请务必注意,docker network prune 命令只移除未使用的网络。一个或多个容器仍在使用的网络不会被移除。

docker network create-ipam 命令用于为 Docker 网络创建新的 IP 地址管理(IPAM)配置。IPAM 允许你定义自定义的 IP 地址范围、子网、网关和其他网络配置。

docker network create-ipam --subnet=192.168.1.0/24 my-custom-network

在这个例子中

  1. my-custom-network 是要将容器连接到的具有自定义 IPAM 配置的 Docker 网络的名称。

运行 docker network create-ipam 命令后,Docker 将为 my-custom-network Docker 网络创建一个新的 IPAM 配置,并指定子网。这样,你就可以为连接到该网络的容器定义特定的 IP 地址范围和网络设置。

值得注意的是,自定义 IPAM 配置是可选的,Docker 会为未指定自定义配置而创建的网络提供默认 IPAM 设置。自定义 IPAM 配置适用于需要精确控制 IP 地址分配和网络参数的高级网络场景。

docker network connect-ipam 命令用于将容器连接到具有自定义 IP 地址管理(IPAM)配置的 Docker 网络。IPAM 允许你定义特定的 IP 地址范围、子网、网关和其他网络设置。

docker network connect-ipam --ip=192.168.1.10 my-custom-network my-container

在这个例子中

  1. my-custom-network 是具有自定义 IPAM 配置的 Docker 网络的名称,您要断开容器与该网络的连接。

运行 docker network connect-ipam 命令后,Docker 会使用自定义 IPAM 配置将指定容器(my-container)连接到 my-custom-network Docker 网络。容器将被分配到网络上指定的 IP 地址(192.168.1.10)。

使用带有自定义 IPAM 配置的 docker network connect-ipam 命令,可以让你对连接到 Docker 网络的容器的 IP 地址分配和网络参数拥有更多控制权。

docker network disconnect-ipam 命令用于断开容器与具有自定义 IP 地址管理(IPAM)配置的 Docker 网络的连接。该命令专为具有自定义 IPAM 设置的网络而设计。

docker network disconnect-ipam my-custom-network my-container

在这个例子中

  1. my-container 是要断开网络连接的容器的名称或 ID。

运行 docker network disconnect-ipam 命令后,Docker 会断开指定容器(my-container)与带有自定义 IPAM 配置的 my-custom-network Docker 网络的连接。

需要注意的是,docker network disconnect-ipam 命令专门用于自定义 IPAM 配置的网络。对于使用默认 IPAM 设置的网络,你可以使用普通的 docker network disconnect 命令,而不用 -ipam 后缀。

默认情况下,创建网桥网络时未启用 DNS。但如果我们创建自定义桥接网络,DNS 默认会启用。

loclhost:~$ docker container ls
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

localhost:~$ docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
6c51373f78ad   bridge    bridge    local
3a33f83c3664   host      host      local
e4ebd601732e   none      null      local

localhost:~$ docker container run -itd ubuntu:14.04 bash
7b1af2ee48e43f8018c4324bbcb9f52a27f741bd7a0437ddd0f6766bd7ca6b10

localhost:~$ docker container run -itd ubuntu:14.04 bash
c3ce5dbe5d859705f139e811bc11367d02bf0969492e9d515a3cc6cc636ddfbb

localhost:~$ docker container ls
CONTAINER ID   IMAGE          COMMAND   CREATED          STATUS         PORTS     NAMES
c3ce5dbe5d85   ubuntu:14.04   "bash"    8 seconds ago    Up 7 seconds             unruffled_sinoussi
7b1af2ee48e4   ubuntu:14.04   "bash"    10 seconds ago   Up 9 seconds             trusting_joliot

localhost:~$ docker container exec -it 7b bash
root@7b1af2ee48e4:/# ping c3ce5dbe5d85

ping: unknown host c3ce5dbe5d85
root@7b1af2ee48e4:/#

为了实现上述用例,让我们先创建一个网络 "测试":

localhost:~$ docker network create test
b1e05c1afdb2f901e81a66a52d64a9dcdca9c5cab98433cdaed2faa83c5b3e6b

localhost:~$ docker container ls
CONTAINER ID   IMAGE     COMMAND   CREATED              STATUS              PORTS     NAMES

localhost:~$

现在,用 ubuntu 映像创建一个容器,网络名为 "test":

localhost:~$ docker container run -itd --network=test ubuntu:14.04 bash
c7b07b61bb20cdbb6e1b54a165aed0f8907d95d563fdd7a60940d004694c4557

列出容器清单:

localhost:~$ docker container ls
CONTAINER ID   IMAGE     COMMAND   CREATED              STATUS              PORTS     NAMES
c7b07b61bb20   ubuntu    "bash"    About a minute ago   Up About a minute             clever_wu

使用 inspect 命令检查容器:

"Networks": {
                  "host": {
                                        "IPAMConfig": null,
                                                              "Links": null,
                                                                                    "Aliases": null,
                                                                                                          "NetworkID": "b1e05c1afdb2f901e81a66a52d64a9dcdca9c5cab98433cdaed2faa83c5b3e6b",
                                                                                                                                "EndpointID": "b860ca4fdda3e0732367949cb94fd2eded08a4f2e46715a6c125b1bf336c102f",
                                                                                                                                                      "Gateway": "",
                                                                                                                                                                          "IPAddress": "",
                                                                                                                                                                                              "IPPrefixLen": 0,
                                                                                                                                                                                                                  "IPv6Gateway": "",
                                                                                                                                                                                                                                      "GlobalIPv6Address": "",
                                                                                                                                                                                                                                                          "GlobalIPv6PrefixLen": 0,
                                                                                                                                                                                                                                                                              "MacAddress": "",
                                                                                                                                                                                                                                                                                                  "DriverOpts": null
                  }
}

删除网络

localhost:~$ docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
6c51373f78ac   bridge    bridge    local
3a33f83c3663   host      host      local
e4ebd601732c   none      null      local
348f7295d3ca   test      bridge    local

localhost:~$ docker network rm test
test

localhost:~$

相关推荐

当Frida来“敲”门(frida是什么)

0x1渗透测试瓶颈目前,碰到越来越多的大客户都会将核心资产业务集中在统一的APP上,或者对自己比较重要的APP,如自己的主业务,办公APP进行加壳,流量加密,投入了很多精力在移动端的防护上。而现在挖...

服务端性能测试实战3-性能测试脚本开发

前言在前面的两篇文章中,我们分别介绍了性能测试的理论知识以及性能测试计划制定,本篇文章将重点介绍性能测试脚本开发。脚本开发将分为两个阶段:阶段一:了解各个接口的入参、出参,使用Python代码模拟前端...

Springboot整合Apache Ftpserver拓展功能及业务讲解(三)

今日分享每天分享技术实战干货,技术在于积累和收藏,希望可以帮助到您,同时也希望获得您的支持和关注。架构开源地址:https://gitee.com/msxyspringboot整合Ftpserver参...

Linux和Windows下:Python Crypto模块安装方式区别

一、Linux环境下:fromCrypto.SignatureimportPKCS1_v1_5如果导包报错:ImportError:Nomodulenamed'Crypt...

Python 3 加密简介(python des加密解密)

Python3的标准库中是没多少用来解决加密的,不过却有用于处理哈希的库。在这里我们会对其进行一个简单的介绍,但重点会放在两个第三方的软件包:PyCrypto和cryptography上,我...

怎样从零开始编译一个魔兽世界开源服务端Windows

第二章:编译和安装我是艾西,上期我们讲述到编译一个魔兽世界开源服务端环境准备,那么今天跟大家聊聊怎么编译和安装我们直接进入正题(上一章没有看到的小伙伴可以点我主页查看)编译服务端:在D盘新建一个文件夹...

附1-Conda部署安装及基本使用(conda安装教程)

Windows环境安装安装介质下载下载地址:https://www.anaconda.com/products/individual安装Anaconda安装时,选择自定义安装,选择自定义安装路径:配置...

如何配置全世界最小的 MySQL 服务器

配置全世界最小的MySQL服务器——如何在一块IntelEdison为控制板上安装一个MySQL服务器。介绍在我最近的一篇博文中,物联网,消息以及MySQL,我展示了如果Partic...

如何使用Github Action来自动化编译PolarDB-PG数据库

随着PolarDB在国产数据库领域荣膺桂冠并持续获得广泛认可,越来越多的学生和技术爱好者开始关注并涉足这款由阿里巴巴集团倾力打造且性能卓越的关系型云原生数据库。有很多同学想要上手尝试,却卡在了编译数据...

面向NDK开发者的Android 7.0变更(ndk android.mk)

订阅Google官方微信公众号:谷歌开发者。与谷歌一起创造未来!受Android平台其他改进的影响,为了方便加载本机代码,AndroidM和N中的动态链接器对编写整洁且跨平台兼容的本机...

信创改造--人大金仓(Kingbase)数据库安装、备份恢复的问题纪要

问题一:在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录,您可...

OpenSSH 安全漏洞,修补操作一手掌握

1.漏洞概述近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSH安全漏洞(CNNVD-202407-017、CVE-2024-6387)情况的报送。攻击者可以利用该漏洞在无需认证的情况下,通...

Linux:lsof命令详解(linux lsof命令详解)

介绍欢迎来到这篇博客。在这篇博客中,我们将学习Unix/Linux系统上的lsof命令行工具。命令行工具是您使用CLI(命令行界面)而不是GUI(图形用户界面)运行的程序或工具。lsoflsof代表&...

幻隐说固态第一期:固态硬盘接口类别

前排声明所有信息来源于网络收集,如有错误请评论区指出更正。废话不多说,目前固态硬盘接口按速度由慢到快分有这几类:SATA、mSATA、SATAExpress、PCI-E、m.2、u.2。下面我们来...

新品轰炸 影驰SSD多款产品登Computex

分享泡泡网SSD固态硬盘频道6月6日台北电脑展作为全球第二、亚洲最大的3C/IT产业链专业展,吸引了众多IT厂商和全球各地媒体的热烈关注,全球存储新势力—影驰,也积极参与其中,为广大玩家朋友带来了...