2 - 도커의 동작 원리
일반적인 서버라면 운영체제 위에 프로그램이나 데이터가 직접 올라가지만,
도커를 사용하는 경우에는 운영체제 위에 도커 엔진이 동작하고 그 위에서 컨테이너가 동작한다.
*프로그램이나 데이터는 컨테이너 안에 위치한다
데이터는 컨테이너 안에 위치한 것과 밖에 위치하는 것이 있다.
---
모든 컨테이너에는 '리눅스 운영체제 비슷한 무언가'가 들어 있다.
최소한의 컨테이너에도 '리눅스 운영체제 비슷한 무언가'가 따려 나온다. '빈 컨테이너'라고 했지만 정말로 텅 빈 것은 아니다.
-> 비슷한 무언가일뿐 실제 운영체제가 아니다.
---
운영체제는 소프트웨어나 프로그램의 명령을 하드웨어에 전달하는 역할
도커는 밑바탕에서 리눅스 운영체제가 동작하는 것을 전제로 하는 구조이기 때문에 리눅스 운영체제에서만 동작할 수 있다.
window, mac 에서 도커 구동하기 -> 운영체제위에 리눅스 운영체제를 끌어들여 도커를 실행하는 것이다
도커를 사용하려면 어떤 형태로든 리눅스 운영체제를 갖춰야 한다.
도커 허브와 이미지, 그리고 컨테이너
이미지: 컨테이너를 찍어내는 '빵틀'과 같은 것으로, 컨테이너의 설계도 역할을 한다. 예시로 로봇 장난감을 찍어내는 금형과 같다.
이미지 역시 이미지 자체로는 큰 쓸모가 없다. 이미지는 컨테이너를 만드는 데 사용한다.
이미지 하나만 있으면 똑같은 것을 여러 개 만들 수 있다. -> 동일한 컨테이너를 여러 개 배치하기 편리하다.
컨테이너로도 이미지를 만들 수 있다.
컨테이너로부터 이미지를 만들 수 없었다면 여러 개의 컨테이너를 일일이 수정할 수밖에 없었을 것이다.
도커 엔진 간에 이동이 가능하다.
다른 물리 서버에 설치된 도커 엔진으로 컨테이너를 이동시킬 수 있다.
컨테이너는 도커 엔진만 설치돼 있으면 구동이 가능하므로 다른 서버나 컴퓨터에 도커 엔진을 설치하고 새로운 도커 엔진에 이미지를 이용해 똑같은 컨테이너를 생성하면 된다.
컨테이너 자체가 이동하는 것은 아니지만 이미지를 통해 컨테이너가 이동한 것과 같은 효과를 얻을 수 있다.
도커 허브와 도커 이미지
도커 이미지는 주로 '도커 허브' 에서 구한다. 도커 허브는 공식적으로 운영되는 도커 레지스트리(도커 이미지를 배포하는 서비스)의 이름이다.
도커 허브는 스마트폰의 구글 플레이 스토어와도 같은 존재로, 공개된 컨테이너 이미지가 모여 있는 곳
도커 이미지를 고를때는
공식 이미지를 사용한다, 커스텀 이미지를 직접 만들어 사용한다
다양한 형태로 조합이 가능한 컨테이너
도커를 사용할 때의 원칙 중 하나로, '한 컨테이너에 한 프로그램' 이라는 것이 있다
하나의 프로그램만 담긴 컨테이너를 사용한다는 의미로, 보안 및 유지 관리 측면에서 유리하기 때문에 많이 쓰이는 정책이다.