Inception

junpkim·2022년 11월 17일
0

소개

Inception은 docker를 이용하여 웹 서버를 구축하는 과제이다.
subject의 제약사항으로 성능상의 이유로 container는 debian buster 혹은 alpine linux 두 번째 안정 버전을 사용하도록 제약하고 있다.
또한 아래 3개의 컨테이너를 만들어야 하며
1. TLSv1.2 또는 TLSv1.3의 프로토콜을 사용하는 nginx
2. wordpress + php+fpm
3. MariaDB (nginx를 포함하지 않는)
DB volume과 wordpress volume을 만들고, docker-network를 이용하여 컨테이너간 통신이 이루어져야 하고, 컨테이너는 충돌 발생시 재시작되어야 한다.

Docker

정의

docker는 컨테이너 기반의 오픈소스 가상화 플랫폼이라고 정의된다.
그리고 컨테이너는 플랫폼에 상관없이 application을 실행할 수 있는 기술을 의미한다.

VM과의 차이점

Docker는 VM(Virtual Machine)과 많이 비교당하곤 한다.

VM은 OS를 위한 자원을 따로 할당해 주어야 하는 반면
Docker는 경량화된 linux 머신이 가상화되어 구동되고, 그 위에서 docker가 돌아간다. 그리고 각각의 컨테이너는 linux namespace라는 가상화 기술을 사용해 user space 영역을 가상화시켜 분리된 user space에서 실행되며 동일한 kernal space를 사용하게 된다.

Docker Image와 Docker Container

Docker Image는 도커에서 서비스 운영에 필요한 서버 프로그램, 소스코드, 라이브러리, 컴파일 된 실행파일 등을 묶은 형태를 Docker Image라고 한다.
즉, 특정 프로세스를 실행하기 위한 모든 파일과 설정값, 환경을 지닌 것으로 더 이상의 의존성 파일을 컴파일하거나 이것저것 설치할 필요가 없는 상태의 파일을 의미한다.

Docker Container는 이미지를 실행한 상태로 응용프로그램을 패키징 or 캡슐화하여 격리된 공간에서 프로세스를 동작시키는 기술이다.

docker compose

Docker compose는 여러 개의 컨테이너로 이루어진 서비스를 구축, 실행하는 순서를 자동으로 해주어 관리를 간단하게 해주는 기능이다.
compose 파일을 준비하고 커맨드를 실행하면 그 파일로부터 설정을 읽어들여 컨테이너 서비스를 실행하는 것이 가능할 뿐더러 각 컨테이너의 볼륨과 통신에 필요한 네트워크의 설정이 가능하다.

0개의 댓글