[ TERMS 04 ] 도커
1. 도커(Docker)의 정의
도커는 컨테이너에서 다양한 서버의 자원들을 원하는 대로 묶어서 손쉽게 실행하고 배포하는 가상화 플랫폼이다.
2. 도커는 어디에서 접하게 될까?
도커는 엔지니어와 개발자들을 위해 사용된다. 예를 들어 A회사가 솔루션 프로그램을 개발하여 여러 회사에 납품하고 있을때 초창기에는 엔지니어가 솔류션에 3~4개의 소프트웨어를 설치해서 납품했다. 그런데 시간이 지날수록 솔루션이 업그레이드되고 지방까지 솔루션을 납품하는 일이 잦아졌다. 엔지니어는 매번 솔루션을 납품할 때마다 8개의 소프트웨어를 설치해야 하고, 납품하는 업체는 많아지는데 설치 시간은 길어진다. 이러한 상황에 도커를 활용한다.
도커는 컨테이너라는 독립된 공간에서 여러 개의 자원들을 원하는 대로 묶어 이미지를 만들고, 이 이미지를 배포해 운영한다. 여기서 이미지는 특정 프로세스를 실행하기 위한 모든 파일(설치 프로그램, 소스코드, 라이브러리, 환경 설정 값 등)을 하나로 묶은 형태를 의미하고, 도커파일(Dockerfile)을 만든 뒤 빌드하면 생성되는 파일이다. 따라서 엔지니어가 소프트웨어를 각각 설치하지 않고 매번 설치하는 소프트웨어를 이미지로 만들어 배포하면 손쉽게 설치할 수 있다.
3. 도커 알아보기
> 개념
도커 플랫폼에서는 빌드 및 소스코드를 담고 있는 도커파일을 Push한다. 그리고 해당 이미지는 도커 레지스트리에 저장되고, 엔지니어와 개발자들은 해당 이미지를 사용할 수 있다. 또한 통합 테스트 중 에러가 발생하면 에러 발생 이전 시점의 이미지를 가져와서 다시 사용하는 롤백(Rollback) 기능을 제공한다.
> 특징
- 쉽고 빠른 실행 환경 구성
도커파일을 이용하면 쉽고 빠르게 실행 환경을 구성할 수 있다. 원하는 소프트웨어를 묶어서 배포하면 여러 소프트웨어를 설치하지 않고 하나의 이미지로 설치가 가능하다. 도커 파일은 리눅스 명령어와 간단한 도커 명령어로 구성되어 있어 작성이 쉽다.
- 가벼운 용량, 비용 절감 효과
물리적인 서버는 무겁고 유지 비용도 크다. 하지만 도커 컨테이너는 물리적인 서버에 비해 상대적으로 가볍다. 원인은 도커파일의 정의에 있는데
도커파일은 '이미지 + 단계별 소스코드 + 빌드할 내용이 담긴 텍스트 파일'로 코드 실행에 필요한 OS, 버전, 각 파일 경로에 설치할 파일 등의 설정만 포함되어 있따. 따라서 도커파일의 용량은 일반적으로 MB 정도의 크기고, 일부는 GB 용량이다. 이는 하드웨어 용량과 비교했을 때 적은 용량이며, 구동 또한 보다 신속하게 이뤄진다.
- 공유 환경 제공(Docker Hub)
FROM nginx:alpine
WORKDIR /usr/share/nginx/html
RUN rm -rf./*
COPY ./* ./
ENTRYPOINT ["nginx", "-g", "daemon off;"]
EXPOSE 80
HEALTHCHECK -inteval=2s -timeouts=5s -retries=5 CMD curl -fail
http://localhost:/ || exit 1
도커파일 코드는 /usr/share/nginx/html 폴더 경로에 nginx를 설치하고 실행시키는 도커파일입니다. 도커 파일 코드처럼 미리 만들어진 명령어로 손쉽게 내가 원하는 경로에 원하는 버전의 소프트웨어를 배포하고 사용할 수 있다.
도커는 공유 서비스는 '도커 허브(Docker Hub)'를 제공한다. 도커 허브는 일반적인 'GIT'역할을 제공한다. GIT은 개발자들이 여러 소스코드를 작성해 업로드 하고, 개인 포트폴리오 혹은 정보를 다른 사람들과 공유하는 서비스이다. 도커 허브 역시 개인이 작성한 도커 파일을 전 세계 사람들과 공유할 수 있다. 또한 다른 사람이 작성한 도커 파일을 활용하고, 이미지를 원하는 대로 수정해 다시 개인의 허브로 push할 수 있다.
- 쉬운 배포
프로그램 개발이 완료되고 솔루션이 만들어지면 해당 환경을 동일하게 배포할 수 있다. 개발 프로젝트의 팀원들이 각자 개발 환경을 구성하면 설정 시 정확성이 떨어지고, 시간도 많이 소요된다. 이때 도커를 사용하면 개발팀 전원이 동일한 개발 환경을 빠르게 구축하고 만들 수 있다.
- 리눅스 친화적
도커의 활용은 리눅스, 가상환경에서 그 진가를 확인할 수 있다. 윈도우에도 도커를 설치할 수는 있지만 결국 도커파일을 수정하고, 이미지를 빌드하고, push하는 작업은 리눅스에서 실행해야 한다. 단 몇 줄의 명령어로 손쉽게 도커를 사용할 수 있다.
4. 도커 더 알아보기
> 함께 알아 두면 좋은 용어
- 쿠버네티스
- GIT
- 리눅스
'IT 도서 리뷰 > 개발자가 되기 위해 꼭 알아야 하는 IT 용어' 카테고리의 다른 글
[PART4] 클라우드/데브옵스 - TERMS 06 (0) | 2025.04.28 |
---|---|
[PART4] 클라우드/데브옵스 - TERMS 05 (0) | 2025.04.20 |
[PART4] 클라우드/데브옵스 - TERMS 03 (0) | 2025.04.05 |
[PART4] 클라우드/데브옵스 - TERMS 02 (0) | 2025.03.29 |
[PART4] 클라우드/데브옵스 - TERMS 01 (0) | 2025.03.21 |