Page 24 -
P. 24
1.1.2 도커 컨테이너 설계
도커 컨테이너를 생성할 때 주로 주의해야 할 점은 다음 네 가지다.
● 1 컨테이너당 1 프로세스
● 변경 불가능한 인프라(Immutable Infrastructure) 이미지로 생성한다.
● 경량의 도커 이미지로 생성한다.
● 실행 계정은 root 이외의 사용자로 한다.
가장 중요한 점은 도커 컨테이너는 ‘1 컨테이너당 1 프로세스’만 기동하도록 생성하는 것이다. 기
존 가상 머신 환경처럼 하나의 이미지 안에 여러 프로세스를 올리는 방법은 추천하지 않는다.
도커 컨테이너는 애플리케이션과 해당 애플리케이션을 실행하기 위한 실행 환경을 패키징함으로
써 애플리케이션을 쉽게 실행하기 위한 도구로, 애플리케이션에서 중요한 역할을 한다. 주변의 에
코시스템도 이 사상을 바탕으로 만들어진 것들이 많으므로, 이를 무시하고 도커 컨테이너에 여러
프로세스를 기동하도록 만들면 주변 에코시스템과 맞지 않거나 관리가 힘들어진다.
두 번째로 중요한 점은 변경 불가능한 인프라를 구현하는 이미지로 생성하는 것이다. 변경 불가
능한 인프라는 ‘환경을 변경할 때 오래된 환경은 없애고 새로운 환경을 만든다’, ‘한번 만들어진 환
경은 절대 변경되지 않게 한다’라는 개념이다. 전자는 쿠버네티스를 사용하는 경우 컨테이너가 자
동으로 환경을 다시 만들지만, 후자는 컨테이너 이미지 관리자가 고려해야 한다. 예를 들어, 컨테
이너 기동 후에 외부에서 실행 바이너리를 가져오거나 패키지를 설치하면 외부 영향에 따라 컨테
이너 이미지 실행 결과가 달라진다. 도커 컨테이너는 버전을 관리할 수 있으므로 컨테이너 이미지
안에 애플리케이션 실행 바이너리나 관련 리소스를 가능한 한 포함시켜 컨테이너 이미지를 변경
불가능한 상태로 만들어야 한다(그림 1-3).
그림 1-3 외부 요인이 컨테이너에 미치는 영향
컨테이너 이미지
실행 일정 시간 후
패키지 설치 실행 패키지 설치
v1.0 v1.1
≠
외부에서 파일 다운로드 외부에서 파일 다운로드
정상 다운로드 404 Not Found
32
쿠버네티스_04.indd 32 2021-07-20 오후 1:32:57