본문 바로가기
DevOps/docker

Docker Mac Container IP Network 접속 불가(172.xx.xx.xx) 대역

by clearinging 2022. 3. 27.
반응형

필자는 mac에서 sentinel, redis 구성을 하였습니다, spring 에서는 sentinel에서 master redis ip와 port대역을 가져오고, application에서 mater 로 query를 하게 되는데 이때 172 대역에 접속하지 못하는 이슈가 발생하는 이슈를 경험하게 되었고, 관련 내용을 공유 드리고자 글을 적게 되었습니다

Docker-compose

version: '2'

networks:
  app-tier:
    driver: bridge

services:
  # master : bitnami/redis:6.2.6
  redis-master:
    hostname: redis-master
    container_name: redis-master
    image: bitnami/redis:6.2.6
    # command: redis-server --requirepass yourpassword
    environment:
      - REDIS_REPLICATION_MODE=master
      - REDIS_PASSWORD=root
    ports:
      - 6379:6379
    networks:
      - app-tier

  # slave1 : bitnami/redis:6.2.6
  redis-slave-1:
    hostname: redis-slave-1
    container_name: redis-slave-1
    image: bitnami/redis:6.2.6
    environment:
      - REDIS_REPLICATION_MODE=slave
      - REDIS_MASTER_HOST=redis-master
      - REDIS_PASSWORD=root
      - REDIS_MASTER_PASSWORD=root
    ports:
      - 6480:6379
    depends_on:
      - redis-master
    networks:
      - app-tier


  # slave2 : bitnami/redis:6.2.6
  redis-slave-2:
    hostname: redis-slave-2
    container_name: redis-slave-2
    image: bitnami/redis:6.2.6
    environment:
      - REDIS_REPLICATION_MODE=slave
      - REDIS_MASTER_HOST=redis-master
      - REDIS_PASSWORD=root
      - REDIS_MASTER_PASSWORD=root
    ports:
      - 6481:6379
    depends_on:
      - redis-master
      - redis-slave-1
    networks:
      - app-tier

  # sentinel1 : bitnami/redis-sentinel:6.2.6
  redis-sentinel-1:
    hostname: redis-sentinel-1
    container_name: redis-sentinel-1
    image: bitnami/redis-sentinel:6.2.6
    environment:
      - REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS=3000
      - REDIS_MASTER_HOST=redis-master
      - REDIS_MASTER_PORT_NUMBER=6379
      - REDIS_MASTER_SET=master-name
      - REDIS_SENTINEL_QUORUM=2
      - REDIS_MASTER_PASSWORD=root
    depends_on:
      - redis-master
      - redis-slave-1
      - redis-slave-2
    ports:
      - 26379:26379
    networks:
      - app-tier

  # sentinel2 : bitnami/redis-sentinel:6.2.6
  redis-sentinel-2:
    hostname: redis-sentinel-2
    container_name: redis-sentinel-2
    image: bitnami/redis-sentinel:6.2.6
    environment:
      - REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS=3000
      - REDIS_MASTER_HOST=redis-master
      - REDIS_MASTER_PORT_NUMBER=6379
      - REDIS_MASTER_SET=master-name
      - REDIS_SENTINEL_QUORUM=2
      - REDIS_MASTER_PASSWORD=root
    depends_on:
      - redis-master
      - redis-slave-1
      - redis-slave-2
    ports:
      - 26380:26379
    networks:
      - app-tier

  # sentinel3 : bitnami/redis-sentinel:6.2.6
  redis-sentinel-3:
    hostname: redis-sentinel-3
    container_name: redis-sentinel-3
    image: bitnami/redis-sentinel:6.2.6
    environment:
      - REDIS_SENTINEL_DOWN_AFTER_MILLISECONDS=3000
      - REDIS_MASTER_HOST=redis-master
      - REDIS_MASTER_PORT_NUMBER=6379
      - REDIS_MASTER_SET=master-name
      - REDIS_SENTINEL_QUORUM=2
      - REDIS_MASTER_PASSWORD=root
    depends_on:
      - redis-master
      - redis-slave-1
      - redis-slave-2
    ports:
      - 26381:26379
    networks:
      - app-tier

이슈 원인

docker network redis_app-tier inspect 조회 결과

  • network 구성: app-tier라는 네트워크에서 172.23.0.0/16 대역을 사용하게 됩니다.

route table

  • route table을 환인 결과 172 대역을 찾을 수 없었습니다
  • 동일한 구성의 liux에서 실해하게 되면 route 명령어로 172 대역을 확인할 수 있습니다

결과

  • 이슈 확인결과 아래 링크의 docker 공식 페이지에서는 mac은 route table에 container 대역 정보를추가할 수 없다고 나와있습니다.
  • 그러므로 localhost와 같은 방식으로 container로 접속하라고 나와 있습니다
  • 이슈 참고 링크
반응형

'DevOps > docker' 카테고리의 다른 글

01. Docker정의와 이미지  (0) 2021.09.12