如何获得Docker容器IP地址?

众所周知,我们可以使用Docker在称为容器的打包环境中运行应用程序。当您希望容器彼此通信时,可以将它们创建的网络视为桥接网络。运行以下命令以获取网络列表。

sudo docker network ls

每个容器网络都有一个子网掩码,可用于将IP地址分配到其容器。这也意味着为Docker网络中的每个容器分配了一个IP地址。Docker网络的默认子网是172.17.0.0/16。

知道了这些之后,我们现在将看到可用于查找网络中Docker容器的IP地址的不同方法。

  • 使用Docker检查

Inspect命令用于获取有关主机中所有正在运行的Docker容器的低级信息。它以JSON格式显示。我们可以在命令中使用format选项,以仅获取一些重要信息。

使用下面的以下命令通过inspect获取容器IP地址。

sudo docker ps −a

sudo docker inspect −−format '{{ .NetworkSettings.IPAddress }}' <CONTAINER_ID>

第一个命令用于获取所有正在运行的容器的容器ID的列表。可以在第二个命令上使用它来查找IP地址。

  • 如果是单个容器

如果仅运行一个容器,则可以通过解析它直接返回最后一个容器ID

sudo docker inspect −−format '{{ .NetworkSettings.IPAddress }}' $(docker ps −q)
  • 使用重击

您还可以通过将bash shell附加到容器来获取容器的网络ID。使用以下命令。

要开始容器的bash,请使用-

sudo docker exec −it <CONTAINER_ID> bash

一旦进入bash,您就可以使用以下命令访问IP地址。

apt−get −y update

apt−get install iproute2

ip addr | grep global

  • 导出容器的环境变量

对于特定的Docker容器,您可以导出环境变量。以下命令返回最后运行的容器的IP地址。

sudo docker exec −it $(docker ps −l −q) env | grep ADDR
  • 使用IP地址命令

您还可以通过运行IP地址命令来访问容器的IP地址。查看下面的命令。

sudo docker exec −it <container−id> ip addr | grep global
  • 使用bashrc文件

您可以通过创建自己的自定义命令来访问特定容器的IP地址。您只需要在bashrc文件中添加一个方法,该方法将带有一个作为容器ID的参数,然后返回该容器的IP地址。查看下面的命令。

containerip() {

   sudo docker inspect −−format '{{ .NetworkSettings.IPAddress }}' "$@"

}

将上面的代码粘贴到∽/ .bashrc文件的末尾。

通过使用命令重新加载文件-

source ∽/.bashrc

现在,使用以下命令获取容器ID。

sudo docker ps −a

复制容器ID,并在以下命令中使用它来获取容器的IP地址。

sudo containerip <CONTAINER_ID>

在本文中,我们已经看到了获取Docker容器IP地址的六种不同方法。但是,最好甚至最简单的方法是使用inspect命令,这也使其成为使用最广泛的命令之一。

以上是 如何获得Docker容器IP地址? 的全部内容, 来源链接: utcz.com/z/340896.html

回到顶部