首页 > 其他分享 >教我怎么用docker的network

教我怎么用docker的network

时间:2023-04-22 12:57:07浏览次数:36  
标签:怎么 容器 network 网络 docker Docker NAME

Docker 提供了一种为容器创建和管理网络以相互通信的方法。 创建 Docker 网络有多种方法,最简单的方法是使用 docker network create 命令。 此命令创建一个具有指定名称和驱动程序的新网络。 驱动程序指定网络上的容器如何相互通信。 最常见的驱动程序是桥接驱动程序,它用于为单个主机上的容器创建专用网络 [来源 1]。

要创建新网络,请运行以下命令:

$ docker network create NAME -d 驱动程序

要列出所有网络,请运行以下命令:

$ 码头网络 ls

默认情况下,Docker 提供三种类型的网络:bridge、host 和 none。 桥接网络是最常用的类型,它用于为单个主机上的容器创建私有网络。 当容器启动时将 --network 标志设置为桥接,它会自动连接到桥接网络 [来源 2]。

访问容器的一种方法是使用其名称。 Docker 提供了一个内置的 DNS 服务器,可以将容器名称解析为其 IP 地址。 当容器在网络上启动时,Docker 会为其分配一个唯一的主机名,可用于从同一网络上的其他容器引用该容器。 例如,如果一个容器名为“web”,则另一个容器可以使用主机名“web”[来源 1] 访问它。

访问容器的另一种方法是使用其 IP 地址。 Docker 为网络上的每个容器分配一个唯一的 IP 地址,可用于与同一网络上的其他容器通信。 要查找容器的 IP 地址,请运行以下命令:

$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' CONTAINER_NAME_OR_ID

要允许网络上的容器相互通信,您可以使用“--link”选项将一个容器链接到另一个容器。 这会在两个容器之间创建一个安全隧道,并允许它们使用容器名称相互通信。 但是,不推荐使用此方法,因为它已被弃用并已被 Docker 网络 [来源 3] 取代。

使用 Docker 网络是允许容器相互通信的更好方法。 Docker 网络提供了一种为单个主机上或跨多个主机的容器创建专用网络的方法。 同一网络上的容器可以使用它们的容器名称相互通信,Docker 会自动为网络上的每个容器分配一个唯一的 IP 地址 [来源 1]。

要创建网络并将容器附加到它,请运行以下命令:

$ docker 网络创建 NETWORK_NAME
$ docker run --name CONTAINER_NAME --network NETWORK_NAME IMAGE_NAME

要将现有容器连接到网络,请运行以下命令:

$ docker 网络连接 NETWORK_NAME CONTAINER_NAME

要断开容器与网络的连接,请运行以下命令:

$ docker network disconnect NETWORK_NAME CONTAINER_NAME

使用 Docker 网络的一个好处是它们提供了容器之间的隔离。 每个网络都与其他网络和主机网络隔离,这有助于防止从网络外部对容器进行不必要的访问。 另一个好处是 Docker 网络提供了一种通过允许容器相互通信和共享数据来扩展应用程序的方法 [来源 1]。

但是,使用 Docker 网络有一些缺点。 一个缺点是它们的设置和管理可能很复杂,尤其是在使用多个网络时。 另一个缺点是它们会引入网络延迟并降低性能,尤其是在不同主机上运行容器时 [来源 3]。

总而言之,Docker 网络提供了一种为容器创建专用网络以相互通信的方法。 它们提供了一些好处,例如隔离和可伸缩性,但也有一些缺点,例如复杂性和性能降低。 使用 Docker 网络时,重要的是为您的应用程序选择正确的驱动程序和网络类型,并仔细管理网络配置以确保最佳性能和安全性 [来源 1]。

标签:怎么,容器,network,网络,docker,Docker,NAME
From: https://www.cnblogs.com/wangshushuo/p/17342793.html

相关文章

  • docker 安装portainer
    portainer定义portainer是一个可视化docker操作工具,可以不用写docker命令实现容器的生命周期进行管理,方便的实现容器的创建、运行、停止、暂停、恢复、删除、复制等。卸载已安装的portainer1.通过dockercontainerls命令查看正在运行的容器。找到portainer对应的names。2.......
  • window的shell怎么查看当前用户名
    在Windows的命令行界面下,可以使用%username%的环境变量来获取当前用户名。具体操作步骤如下:打开cmd命令提示符。可以使用Win+R组合键打开运行窗口,输入cmd命令,然后点击“确定”按钮。在命令提示符下输入echo%username%命令。按下回车键,在命令行界面中就可......
  • shell参数的个数用什么变量,怎么表示上一个运行的结果?两个数字相加,用什么
    Shell参数的个数可以使用特定的变量来表示,即$#变量。这个变量表示传递给当前shell脚本或函数的参数个数。例如,如果调用一个shell脚本,并向其传递了3个参数,那么在这个脚本中$#的值将为3。上一个运行的结果可以使用$?变量来表示。这个变量记录上一次命令的返回值(......
  • wsl2+docker跑深度学习
    wsl(ubuntu20.04)+docker安装paddle1.中文显示设置安装语言包sudoaptinstalllanguage-pack-zh-hans设置localesudovi/etc/locale.gen找到zh_CN.UTF-8UTF-8并取消注释,然后保存并退出编译语言sudolocale-gen设置默认语言为中文sudovim/etc/default/locale......
  • Docker镜像操作
    Docker保存镜像1.保存容器更改将容器修改的内容保存为镜像dockercommitappdocker在提交容器更改时可以附加提交信息,方便查询dockercommit-m"firstinitapp"2.镜像命名通过dockertag命令可以对未命名的镜像命名,也可以修改已有镜像的命名dockertag容器idapp:1......
  • docker mysql 错误跟innodb有关
     错误截图 dockerps-a查看所有容器  容器开启失败,进入也失败 原因两个数据的文件冲突了,将你需要启动的那个数据库里面的这个干掉(即删除这两个文件)解决方式:备份(或者移除)两个文件ib_logfile0ib_logfile1 查找文件所在目录find/-nameib_logfile0......
  • YouTube怎么判断影片内含侵权内容? 解析Content ID内容识别系统的原理及功能
    你有没有发现YouTube上有许多没有声音,或是画面翻转的影片?这些主要都是为了逃避YouTube全自动的内容识别系统(ContentID)监测。YouTube为了保护版权影片,发展出这一套强大的武器:ContentID。到底ContentID是什么样的功能?有什么强大的能力呢? YouTubeContentID功能包含了影......
  • 虚拟机可以访问docker,主机访问不了docker
    这种情况通常是由于Docker绑定在本地虚拟网络接口上,而不是本地网络接口上造成的。您可以尝试将Docker绑定到本地网络接口,使主机能够访问Docker。在Linux主机上,您可以通过在/etc/docker/daemon.json配置文件中添加以下内容,将Docker绑定到本地网络接口:{"hosts":["unix:///v......
  • 怎么打开etl文件
    ctrl+R输入perfmon后回车C:\Users\zhang>cd/dC:\Windows\System32\LogFiles\WMIC:\Windows\System32\LogFiles\WMI>tracerpt.exeNtfsLog.etl-lr-o123.xml-ofXML......
  • 小鹿线前端怎么样?
    现在web前端开发开发技术在不断地迭代更新,有很多从事前端开发的程序员在技术上会遇到瓶颈,这个时候小伙伴就应该通过不断的学习开发技术知识,来提升自身的开发技术水平,那小伙伴应该怎么来学习呢?1.梳理清楚知识体系框架学习前端开发技术,不管是入门还是进阶,一定都要有知识体系建设......