LabHub

볼륨·네트워크·컴포즈 · 여러 컨테이너 묶기 · 퀴즈

퀴즈: 여러 컨테이너 묶기

LabHub 에서 이어서 보기

문항 5개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. Compose 에서는 서비스 이름으로 통신이 잘 되던 스택을 `docker run` 으로 옮겼더니 이름 해석이 안 됩니다. 원인은?

    1. Compose 만 쓰는 별도의 특별한 DNS 구현이 따로 있기 때문
    2. 서비스 이름 규칙이 다르다
    3. 포트 매핑이 빠졌다
    4. Compose 는 프로젝트마다 사용자 정의 네트워크를 자동 생성하는데, 손으로 옮길 때 그것을 만들지 않았다
  2. `depends_on` 만 걸어 두면 무엇이 보장되지 **않습니까**?

    1. 의존 서비스가 요청을 받을 준비가 되었다는 것
    2. 컨테이너가 뜨는 순서
    3. 서비스 사이의 네트워크 연결
    4. 선언한 볼륨의 마운트
  3. `expose` 와 `ports` 의 차이는?

    1. 둘 다 호스트에 포트를 열며 문법만 다르다
    2. `expose` 는 호스트에 포트를 열지 않는 문서화용이고, `ports` 만 실제 퍼블리싱이다
    3. `expose` 는 `ports` 보다 안전한 퍼블리싱 방식이다
    4. `expose` 는 UDP 전용이다
  4. 선언 파일과 실제로 도는 컨테이너가 어긋난 상태(드리프트)가 위험한 가장 큰 이유는?

    1. 설정이 어긋나 성능이 나빠져서
    2. 선언에 없는 자원이 남아 디스크를 낭비하기 때문
    3. 서비스 이름과 로그가 어긋나서
    4. 파일이 더 이상 현실을 설명하지 못해, 다음 배포가 예고 없이 손으로 고친 부분을 되돌리기 때문
  5. 3-tier 스택에서 DB 를 프론트엔드 네트워크에 두지 않는 구성의 효과는?

    1. 네트워크 경로가 짧아져 DB 응답이 빨라진다
    2. 프록시 쪽에서는 DB 이름 해석도 라우팅도 없어 접근 경로 자체가 존재하지 않는다
    3. 열어야 할 포트 수를 아낀다
    4. DB 가 분리돼 백업이 쉬워진다