[Docker] 도커 이미지, 컨테이너, 도커 파일
이전글
https://jie0025.tistory.com/662
간단한 설명부터 하고 디테일하게 넘어가보자.
⏺ 도커 이미지
컨테이너 실행에 필요한 파일과 설정값을 포함하고 있는것
상태값을 가지지 않고, 변하지 않는다.
⏺ 도커 컨테이너
이미지를 실행한 상태
-> 추가되거나 변하는 값은 컨테이너에 저장된다.
같은 이미지를 통해 여러개의 컨테이너를 생성할 수 있고
컨테이너의 상태가 변경되어도 이미지는 변하지 않는다.
아래 그림을 보자.
MySQL 워드프레스 두개로 웹페이지를 구성해야한다.
요청이 많을 것을 예상하여 3개정도 환경을 구성하고 싶다.
도커가 없으면 피씨 3대 혹은 가상머신에 각각 MYSQL/워드프레스를 설치하고, 포트번호나 의존성을 모두 추가해주어야 했겠지만...
1. 도커이미지를 통해 MYSQL WORKDPRESS 관련 설정, 파일, 의존성을 모두 정의해두고,
2. 도커 이미지로 컨테이너를 생성하면 >> 3개의 동일한 구성을 바로 만들수 있게 되는 것이다!
✅ 이미지
우분투 이미지 : 우분투리눅스를 실행하기 위한 모든 파일을 갖고 있다.
깃랩이미지 : ruby, go, db, redis, gitlab, source, nginx mddmf rkwrhdlTek.
이미지는 컨테이너를 실행하기 위한 모든 정보를 갖고 있어
더이상 의존성 파일을 컴파일하거나 설치할 필요가 없다.
새로운 서버가 추가되면 이미지를 다운받아 컨테이너를 생성만 해주면 된다.
도커 이미지는
- 도커 허브 https://hub.docker.com/
- 도커 레지스토리 저장소 https://docs.docker.com/registry/
에서 관리할 수 있다.
✅ 도커 컨테이너
컨테이너라는 개별 실행환경 > 소프트웨어 실행을 독립적으로 운용할 수 있는 기반 환경
Host OS 위에서 하나의 독립적인 공간으로 관리되고 실행되지만
인프라나 OS를 독립적으로 나눌 필요가 없어 확장성이 좋고, 빠르다
✅ 도커파일
도커이미지를 만들기 위한 설정 파일
여러가지 명령어를 토대로 도커 파일을 작성하면
설정된 내용으로 도커 이미지가 만들어진다.
Dockerfile을 작성한 후 빌드하면
Docker는 Dockerfile에 나열된 명령문을 차례대로 수행하며 DockerImage를 생성한다.
>> 도커파일을 읽을 수 있으면 이미지가 어떻게 구성되어있는지 알수 있다는 의미가 된다.