docker-compose networking alias的坑

現在docker-compose已經不鼓勵使用links的方式來作為container之間name resolving的管道

另外links也無法雙向link,會造成環狀引用

比較推薦的寫法是使用user-defined bridge,用container name或aliases向dns查詢

version: '3.7'

networks:
  internal:
    driver: bridge
    ipam:
      config:
        - subnet: 172.28.0.0/16

services:
  be1:
    restart: always
    image: alpine:latest
    networks:
      internal:
        aliases:
          - be1
docker exec -it iptest_be1_1 nslookup be1.

有時候我們想要將某個session的資料,送往某個特定的container來達成affinity

但在container重開後internal network ip就有可能變動

這時候如果內部有dns cache就會發送到錯誤的container上

比較workaround的解法是為每個container手動指定static ip