Doker网络设置相关

查看容器的IP地址

查看单个容器的详细完整信息

1
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID>

或者

1
docker inspect <container id>

或者

1
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

简洁模式—查看所有的容器的IP

1
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

使用命令

1
docker network create --subnet=172.18.0.0/16 mynetwork

创建后可以查看,查看命令:

1
docker network ls

2.创建Docker容器,并指定IP

命令如下:

1
docker run -it -d --net mynetwork --ip 172.18.0.8 --name mytomcat tomcat

然后就会给容器有默认固定IP,使用ifconfig也可以查看。

打赏一个煎饼果子!