도커(Docker)란?
도커는 개발자가 컨테이너화된 애플리케이션을 빠르게 빌드, 테스트 및 배포할 수 있게 해주는 소프트웨어 플랫폼이다.
도커 컨테이너
컨테이너를 사용하면 개발자가 소프트웨어를 패키징하여 모든 대상 시스템에서 실행할 수 있다. 쉽게 말해서, 컨테이너는 이미지를 실행한 상태를 말한다. 도커 컨테이너는 도커 엔진이 설치된 모든 머신 또는 가상 머신에서 실행된다.
도커 이미지
도커 이미지는 소스 코드, 라이브러리, 도구 및 응용 프로그램을 실행하는데 필요한 기타 파일을 포함하는 실행 파일이다. 하나의 베이스 이미지에서 도커 이미지를 무제한으로 생성할 수 있다. 또한 하나의 이미지는 여러 컨테이너를 생성할 수 있고, 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아 있는다.
도커의 동작 흐름은 다음과 같다.
1. Dockerfile(도커에서 이미지를 생성하기 위한 용도로 작성하는 파일) 파일로 도커 이미지를 만든다. Dockerfile에는 소스와 함께 의존성 패키지 등 사용했던 설정 파일을 버전 관리하기 쉽도록 명시해준다. 즉, Dockerfile을 사용하여 도커 이미지를 빌드한다.
2. 이미지를 Docker Hub(Docker Registry)에 푸시하여 공유 또는 원격 서버에서 사용할 수 있도록 한다. 이때, 이미지는 기본적으로 이미지 이름과 태그로 구성되어 있으며, 태그는 버전을 기입하는 용도로 쓰인다. 태그는 이미지를 빌드할 때 붙일 수 있으며, 빌드 이후에 수정 가능하다.
3. 빌드한 이미지를 사용하여 도커 컨테이너를 실행한다. (포트 매핑, 환경 변수 설정 등이 필요한 경우 이 단계에서 설정한다.) 내가 만든 이미지 이외에도 다른 누군가가 빌드해서 public repository 저장소에 push해서 올린 이미지를 pull해서 가져올 수 있다.
다음 시간에는 직접 코드를 실행해보도록 하겠다.
'인프라' 카테고리의 다른 글
쿠버네티스(Kubernetes) 포트포워딩(PortForward), YAML/POD란? 생성 조회 및 삭제 (0) | 2024.01.12 |
---|---|
쿠버네티스(Kubernetes, k8s)란? 등장배경, 도커, 컨테이너와의 관계 (0) | 2024.01.12 |
[Docker] Azure 가상머신에서 Flask 접속해보기 2 (0) | 2024.01.12 |
[Docker] Azure 가상머신에서 Flask 접속해보기 1 (0) | 2024.01.12 |
[Docker] Docker에 Flask App 배포해보기 (1) | 2024.01.11 |
댓글