docker-compose固定容器IP写法

admin


本文最后更新于 2020年08月13日

前言

docker-compose部署容器实在太方便了,但是每一次 down,up 都会生成新的IP,导致开发不便,比如Nginx设置的地址又需要重新修改,本文就来教大家如何在固定住docker-compose中固定docker 容器ip

IPAM 驱动

我们需要用到docker ipam IP Address Management Driver ,有兴趣的可以去docker官方文档了解一下

https://docs.docker.com/engine/reference/commandline/network_create/

docker-compose.yml

了解之后,还是很简单的,关于网络的部分我都写上注释了,应该一看就懂

Code example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
version: '3'
 
services:
    rsshub:
        image: diygod/rsshub
        restart: always
        networks:
            rsshub_net:
                ipv4_address: 172.19.0.4
                # rsshub的内部ip地址就固定住了
        environment:
            NODE_ENV: production
            CACHE_TYPE: redis
            REDIS_URL: 'redis://redis:6379/'
            PUPPETEER_WS_ENDPOINT: 'ws://browserless:3000'
        depends_on:
        # depends_on 容器启动依赖顺序,被依赖的容器启动完后rsshub就会开始启动
            - redis
            - browserless
 
    browserless:
        image: browserless/chrome
        restart: always
        networks:
            rsshub_net:
                ipv4_address: 172.19.0.3
 
    redis:
        image: redis:alpine
        restart: always
        networks:
            rsshub_net:
                ipv4_address: 172.19.0.2
                # 保留 172.19.0.1 作为 rsshub_net 的网关ip
        volumes:
            - redis-data:/data
 
networks:
  rsshub_net:
    driver: bridge
    ipam:
     config:
       - subnet: 172.19.0.0/16
       # 子网
 
volumes:
    redis-data:


1.354756s