本文最后更新于 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
了解之后,还是很简单的,关于网络的部分我都写上注释了,应该一看就懂
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: |