创建新容器后,是否可以运行命令从主机获取容器的IP地址?

基本上,一旦Docker创建了容器,我就想滚动我自己的代码部署和容器配置脚本。


当前回答

docker inspect CONTAINER_ID | grep "IPAddress"

您可以将-i添加到grep中以忽略该情况,那么即使以下操作也会奏效:

docker inspect CONTAINER_ID | grep -i "IPaDDreSS"

其他回答

检查此脚本:https://github.com/jakubthedeveloper/DockerIps

它以以下格式返回容器名称及其IP:

abc_nginx 172.21.0.4
abc_php 172.21.0.5
abc_phpmyadmin 172.21.0.3
abc_mysql 172.21.0.2

您可以使用docker inspect<container id>。

例如:

CID=$(docker run -d -p 4321 base nc -lk 4321);
docker inspect $CID

要获取容器的IP地址和主机端口,请执行以下操作:

docker inspect containerId | awk '/IPAddress/ || /HostPort/'

输出:

    "HostPort": "4200"
                    "HostPort": "4200"
        "SecondaryIPAddresses": null,
        "IPAddress": "172.17.0.2",
                "IPAddress": "172.17.0.2",

下面是一个快速有效的答案:

获取您的容器名称或ID:

docker container ls

然后获取IP:

docker inspect <container_ID Or container_name> |grep 'IPAddress'

获取端口:

docker inspect <container_ID Or container_name> |grep 'Port'

我用这个简单的方法

docker exec -it <container id or name> hostname -i

e.g

ubuntu@myhost:~$ docker exec -it 3d618ac670fe hostname -i
10.0.1.5