본문 바로가기

Docker

(에러)WARNING: Some networks were defined but are not used by any service

docker를 이용해서 mongo replicaset을 만들어 migration을 하는 과정 중 initialize 하려고 mongo를 들어가려는 순간

docker-compose exec demo-mongo-primary mongo -u "root" -p "1234"

이러한 에러가 나타났다.

일단 docker-compose.yaml에서 networks

networks:
  demo-replica-set:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.10.99.0/24
  default:
    external: false

그리고 docker-compose up을 하면

아주 잘떠있는 것을 확인할 수 있다.

 

하지만 이러한 mongo replicaset은 tls를 쓰지 않기에 tls 인증서를 넣어주기 위해 새로 replicaset을 만든다음 initialize해주고 mongo dump, restore을 통해 migration을 진행할 계획이였다.

 

여기서 새로운 docker-compose-mongo.yaml을 만든다음 networks를 다른 subnet으로 만들어준다.

networks:
  demo-replica-set-test:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.10.96.0/24
  default:
    external: false

단순히 숫자와 이름만 바꿔줬고, docker-compose -f docker-compose-mongo.yaml up을 했다.

아주 잘 떠있다.

docker-compose exec demo-mongo-primary-test mongo -u "root" -p "1234"

 

그리고 mongo shell로 들어가려고 실행시켰더니

다음과 같이 warning이 뜨면서 mongo로 들어가지지 않는다.

 

해석해보자면 demo-replica-set이라는 network에 의해서 어떠한 network가 정의되어있는데 쓰여지지 않았다.

즉, demo-replica-set network는 지금 쓰여져 있고, 어떠한 이유에서인지 모르지만, demo-replica-set-test network가 정의되어있지만 쓰여지지 않아서 이러한 에러가 뜨는 것 같다.

 

여러 구글링을 해본 결과, 단순히 docker-compose 버전이 낮아서 그렇다고 한다.

그러니까 docker-compose 내부에서도 이러한 에러가 고쳐지지 않다가 1.6.0 ->1.6.2로 넘어가는 시점에 고쳐졌다고 한다.

docker-compose를 다시 v2.2.2로 upgrade하고(참고로 upgrade는 curl로 docker-compose가 아니라 다른 이름으로 받아온다음 docker-compose로 바꾸면 된다.) 다시 실행해봤더니 된다.