반응형
저번 시간에 도커가 무엇인지에 대해 주로 다뤘다면 이번에는 도커에 대해서 알아보는 시간을 가집니다.
본 게시글은 시리즈 게시글이며, "그림과 실습으로 배우는 도커 & 쿠버네티스" 책을 읽고 정리한 내용을 담고 있습니다.
책에는 관심이 없더라도 도커에 대해 알고 싶은 분들께도 도움이 되었으면 합니다.
그림과 실습으로 배우는 도커 & 쿠버네티스 - 두 번째 이야기
도커의 구조, 도커의 장점과 단점은 무엇인가?
위의 목차를 클릭하면 해당 글로 자동 이동 합니다.
도커의 구조
- 운영체제 위에 도커 엔진이 동작하고, 도커 엔진 위에서 컨테이너가 동작하는 구조를 가지고 있다.
- 이 구조를 그림으로 나타내면 아래와 같다.
- 모든 컨테이너에는 '리눅스 운영체제 비슷한 무언가' 가 들어있다.
- 운영체제는 '소프트웨어나 프로그램의 명령을 하드웨어에 전달하는 역할' 을 한다.
- 운영체제는 '커널' 부분과 그 외의 부분들로 구성된다.
- 커널: 하드웨어를 다루는 부분
- 그 외의 부분: 명령 전달을 수행. 커널이 실행한 결과를 프로그램에 전달함
- 도커의 컨테이너는 독립된 환경이므로 리눅스 운영체제에서 컨테이너의 명령을 전달 받을 수 없다.
- 따라서 컨테이너 속에는 운영체제의 커널 외 부분들이 들어가 명령들을 커널로 전달할 수 있도록 한다.
- 리눅스 전체가 들어있는 것이 아니다. 그래서 '가벼움' 이라는 장점을 가진다.
- 그림과 같은 구성을 가지므로 리눅스 환경에서만 사용 가능하다.
도커 허브와 이미지, 그리고 컨테이너
- 이미지: 컨테이너의 설계도라고 볼 수 있다. 이미지를 통해 여러 개의 컨테이너를 생성 가능하다.
- 반대로 컨테이너를 이미지로 만들 수 있다.
- 이미지로부터 생성된 컨테이너의 구성이 변경될 경우, 변경된 구성의 설계도가 필요하다. 이럴 때 컨테이너를 이미지로 만들 수 있다.
- 위와 같은 특징으로 인해 컨테이너의 이동이 자유롭다.
- 이미지는 도커 허브에서 쉽게 구할 수 있다.
- 도커 허브에는 공개된 컨테이너들의 이미지들이 모여있으며 이런 이미지들을 활용하면 원하는 구성의 컨테이너를 쉽게 생성 가능하다.
- 도커를 사용할 때에는 '한 컨테이너에 한 프로그램' 을 원칙으로 한다.
- 그 이유는 보안 및 유지 관리 측면에서 유리하기 때문이다.
도커 컨테이너의 생애주기
- 컨테이너는 쓰고 버리는 일회용품과 같다.
- 일일히 컨테이너의 구성을 업데이트 하기 보다는 새로운 컨테이너로 교체하는 것이 더 쉽다.
- 컨테이너의 생애주기는 만들고, 실행하고, 종료하고, 폐기한 후, 다시 컨테이너를 만드는 일련의 과정을 의미한다.
- 컨테이너가 폐기될 때, 컨테이너 내부의 파일들도 제거된다.
- 따라서 중요한 데이터들을 구분하여 잘 보관해야한다.
- 이를 위해서 호스트의 디스크를 저장공간으로 사용하기도 한다.
- 이것을 '마운트' 라고 부르며, '디스크를 연결해 데이터를 기록할 수 있도록 한 상태' 를 의미한다.
- 이처럼 컨테이너 외부, 즉 호스트의 일부분을 데이터 저장 공간으로 사용할 수 있다.
- 이런 경우 여러 컨테이너에서 데이터를 공유하는 것도 가능하다.
도커의 장점과 단점
- 장점
- 독립된 환경
- 이미지를 만들 수 있다
- 컨테이너에 커널을 포함시킬 필요가 없다
- 한 대의 물리 서버에 여러 대의 서버를 띄울 수 있다
- 서버 관리가 용이하다
- 다루기 쉽다
- 단점
- 리눅스 용 소프트웨어만 지원한다
- 호스트에 문제가 생기면 모든 컨테이너에 영향을 끼친다
- 컨테이너 수가 적은 경우 큰 장점을 느끼기 어렵다.
- 그 외에도 동일한 서버가 여러 대 필요한 경우 도커를 사용할 수 있다!!
- 최근 글쓴이도 도커를 이용해서 동일한 서버를 여러 대 실행시킨 경험이 있다
- 예를 들어, API 서버가 요청 하나를 처리하는 데에 걸리는 시간이 길다면 하나의 API 서버가 모든 요청을 처리하게 되면 지연이 발생할 수 있다.
- 이런 경우에는 동일한 API 서버를 두 대 이상 띄우고 사용자들의 요청이 한가한 서버 쪽으로 분산될 수 있도록 설정할 수 있다.
- 이런 것을 스케일링이라고 한다.
- 도커가 스케일링에 용이한 이유는 명령어 한 줄이면 동일한 구성의 서버를 필요한 만큼 띄울 수 있다.
- 이런 장점으로 책에서도 웹 서버와 API 서버로 활용할 수 있다고 설명한다.
Keyword: Docker, 도커
추천글
2024.08.10 - [책] - 그림과 실습으로 배우는 도커 & 쿠버네티스 - 첫 번째 이야기
그림과 실습으로 배우는 도커 & 쿠버네티스 - 첫 번째 이야기
본 게시글은 시리즈 게시글이며, "그림으로 배우는 도커 & 쿠버네티스" 책을 읽고 정리한 내용을 담고 있습니다. 제 스스로 책 내용을 더 오랫동안 기억하기 위한 목적 이외에도 책을 읽을 시간
se-dobby.tistory.com
반응형
'책으로 하는 공부' 카테고리의 다른 글
[책 요약] 그림과 실습으로 배우는 도커 & 쿠버네티스 - 여섯 번째 이야기 (0) | 2024.08.18 |
---|---|
[책 요약] 그림과 실습으로 배우는 도커 & 쿠버네티스 - 다섯 번째 이야기 (0) | 2024.08.15 |
[책 요약] 그림과 실습으로 배우는 도커 & 쿠버네티스 - 네 번째 이야기 (0) | 2024.08.14 |
[책 요약] 그림과 실습으로 배우는 도커 & 쿠버네티스 - 세 번째 이야기 (0) | 2024.08.12 |
[책 요약] 그림과 실습으로 배우는 도커 & 쿠버네티스 - 첫 번째 이야기 (1) | 2024.08.10 |