写在前面

构建微服务的时候需要固定容器的ip,防止后期重启后ip变动。
本来说在portainer里面固定的ip,虽然效果挺好的,但是还是想写在docker-compose里面。
这里提供两种方法固定ip

方法一 先创建一个网络,然后在指定

使用以下命令创建一个网络,ip可自定义

sudo docker network create --subnet=172.20.0.0/24 网络名字

然后在docker-compose里面填写好以下的配置(里面一些东西需要修改)
这种方法需要配合portainer进行固定ip。 具体参考: 这篇文章

services:
  # redis    
  redis:
    image: redis:latest
    container_name: redis
    restart: always
    ports: 
     - "6379:6379"
    networks:
     - persist    
    ...省略其他的配置
networks:
  persist:
    external:
      name: 网络名

如果一次性固定,应该是把上面的networks改一下成这样子,我也还没试过。。
等一个勇士。

    networks:
      persist:
        ipv4_address: 172.20.0.17 # 具体ip 

方法二

这个方法就不用先创建网络啦,也不用去portainer定制

services:
  # redis    
  redis:
    image: redis:latest
    container_name: redis
    restart: always
    ports: 
     - "6379:6379"
    networks:
      proxy:
        ipv4_address: 172.16.0.9 # 具体ip    
    ...省略其他的配置
# 网络    
networks:
  proxy:
    ipam:
      config:
      - subnet: 172.16.0.0/24

如果使用这种方式,但是某个服务并不用固定ip,可以将networks替换成下面这个(如果不开启全部定制,那可能会冲突)

    networks:
      proxy

参考

  1. docker-compose 固定容器IP地址 - 掘金
  2. 【docker】docker-compose 自定义容器ip地址_be5yond的博客-CSDN博客_docker-compose 指定ip

出处:docker-compose 固定容器IP地址 - 咕噜球 - 记录生活记录学习 (guluqiu.cc)

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐