查看容器的IP地址
查看单个容器的详细完整信息
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID>
或者
docker inspect <container id>
或者
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
简洁模式---查看所有的容器的IP
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
为什么需要给容器设置固定IP
在默认的的桥接模式下,会给每个容器随机分配一个没有使用的IP,一般会按照顺序创建,比如使用bridge模式默认的IP和网段为:172.17.0.1。那么此时创建运行一个新的容器,这个容器的IP会是172.17.0.2,继续创建容器,IP依次类推。这个时候容器间的IP都是在同一网段,是可以互相通信的。
但是这种处理方式,如果容器停止重新启动,那么IP会重新分配,这个时候如果想要和之前一样的IP,那么就必须要和之前的启动顺序完全一致。在开发中如果使用容器作为稳定服务,那么肯定需要IP是固定的,而且设置IP的时候可以设置网段,也就是说可以合理分配容器之间是否可以通信,提前做好IP规划,这样保证了容器的沙箱特性,如果不是需要通信的,就设置为不同的网段即可。
如何给容器设定固定IP
注意:默认bridge模式下无法直接给容器设定固定IP,此时需要先创建自定义网络。
具体的步骤为:
1.创建自定义网络,并指定网段:172.18.0.0/16
使用命令
docker network create --subnet=172.18.0.0/16 mynetwork
创建后可以查看,查看命令:
docker network ls
2.创建Docker容器,并指定IP
命令如下:
docker run -it -d --net mynetwork --ip 172.18.0.8 --name mytomcat tomcat
然后就会给容器有默认固定IP,使用ifconfig也可以查看。