如何获得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)
使用重击
您还可以通过将bashshell附加到容器来获取容器的网络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命令,这也使其成为使用最广泛的命令之一。