docker-指定网络和IP

docker是开发者的有力工具,使用docker可以很简单方便的安装开发的工具和环境。

不过有些工具安装时需要指定引用的服务,比如安装rocketmq的console容器时,需要指定rocketmq broker的容器ip地址,再比如安装kibana需要指定elasticsearch容器的ip地址,这个时候传入127.0.0.1是不行的。猜测当传入127.0.0.1时,它应该是在容器内部查找,而没有跳出来找到host机器。所以需要传入一个真正的ip地址。

但是作为码农,经常在公司和家都要开发,电脑的IP是经常变化的,所以我们需要给容器一个固定的IP地址。

docker默认有三个网络:bridge/host/none。容器默认指定网络bridge,而且IP是动态分配的,不能指定IP地址,所以需要自定义网络。

一、创建自定义网络

$ docker network create --driver bridge --subnet=172.16.12.0/16 --gate=172.16.1.1 mynetwork
  • --driver 指定网络类型
  • --subnet 指定网络和子网掩码
  • --gate 指定网络网关

二、新建容器如何指定网络和IP

$ docker run -itd --name mysql7 --network=mynetwork --ip 172.16.12.12 mysql:5.7.30
  • --network 指定网络
  • --ip 指定IP

三、已存在的容器如何指定网络和IP

3.1 解除旧网络

$ docker network disconnect bridge mysql7

这里假设mysql7这个容器是在默认网络 bridge中,这样先把它的网络解除。

3.2 重新指定网络和IP

$ docker network connect mynetwork mysql7 --ip 172.16.12.13

3.3 重启容器使更改生效

四、参考

更改Docker容器网络地址_修改docker网络_佛系写BUG的博客-CSDN博客

Docker 创建容器时指定容器ip - 简书

如何创建Docker中的网络_docker 创建网络_ly4983的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/tirestay/article/details/134673912