docker

동일한 docker image 를 사용했는데 실행 결과가 다르다?

wefree 2021. 7. 31. 15:33

문제

네이버 검색 결과를 스크래핑(scraping) 할 필요가 있어서 rendertron 을 사용했다.

rendertron 을 쉽게 사용할 수 있도록 한 docker image 를 활용해 서버 2대에 각각 설치후 아래처럼 실행했다.

docker run -it --rm -p 3000:3000 dockette/rendertron

그런데 서버 2대에서 API Response 가 각각 다르다!!! (Server-B 의 경우 이미지가 노출되지 않는다)

 

Server-A 에 설치된 rendertron 결과

Server-A 결과

Server-B 에 설치된 rendertron 결과

Server-B 결과

 

설명

동일한 docker 이미지를 이용했지만, Server-A 와 Server-B 의 네트워크 설정이 달랐던 것이다. 사내 인프라에 접속하기 위해 /etc/docker/daemon.json 를 수정한 적이 있는데, Server-A 와 Server-B 가 각각 다르게 설정 되어 있었다.

 

Sever-A 의 /etc/docker/daemon.json

{
  "data-root": "/home1/docker",
  "storage-driver": "overlay2",
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "1g",
    "max-file": "3"
  }
}

Sever-B 의 /etc/docker/daemon.json

{
    "log-driver": "json-file",
    "data-root": "/home1/docker",
    "log-opts": {
        "max-size": "1g",
        "max-file": "3"
    },
    "mtu": 1450,
    "storage-driver": "overlay2",
    "dns": [
        "x.x.x.x"
    ],
    "bip": "y.y.y.y/26"
}

docker image 를 사용하면 무조건 동일하게 동작한다고 생각했는데, /etc/docker/daemon.json 처럼 외부 설정에 따라 최종 결과는 달라질 수도 있구나..

 

docker 매뉴얼에 나와있는 docker daemon DNS options 를 한번 읽어봐도 좋을 것 같다.