创建新容器后,是否可以运行命令从主机获取容器的IP地址?
基本上,一旦Docker创建了容器,我就想滚动我自己的代码部署和容器配置脚本。
创建新容器后,是否可以运行命令从主机获取容器的IP地址?
基本上,一旦Docker创建了容器,我就想滚动我自己的代码部署和容器配置脚本。
当前回答
Docker是用Go编写的,它也使用Go语法进行查询。
要检查特定容器的IP地址,需要运行命令(-f表示“format”):
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_id_or_name
对于容器ID或名称,可以运行以下命令
docker container ls
它将列出每个正在运行的容器。
其他回答
docker inspect <container id> | grep -i ip
例如:
docker inspect 2b0c4b617a8c | grep -i ip
如果您忘记了容器ID或不想使用shell命令进行操作,最好使用像Portiner这样的UI。
https://portainer.io/
$ docker volume create portainer_data
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
在那里,您可以找到有关容器的所有信息以及IP。
有多种方法可以从主机获取容器的IP
docker inspect-f“{{range.NetworkSettings.Networks}}{{.IPAddress}}}{{end}”containerID
如果您记不住上面的命令,您可以始终执行以下操作
码头工人检查集装箱ID
它将在返回信息后返回Docker对象的低级信息。查找“网络”,然后在其中找到容器的“IPAddress”
为了扩展ko-dos的答案,这里有一个别名来列出所有容器名称及其IP地址:
alias docker-ips='docker ps | tail -n +2 | while read -a a; do name=${a[$((${#a[@]}-1))]}; echo -ne "$name\t"; docker inspect $name | grep IPAddress | cut -d \" -f 4; done'
在Docker 1.3+中,您也可以使用以下方法进行检查:
输入正在运行的Docker(Linux):
docker exec [container-id or container-name] cat /etc/hosts
172.17.0.26 d8bc98fa4088
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.17 mysql
对于窗口:
docker exec [container-id or container-name] ipconfig