시작 가이드 개요
생성일: 2024-03-24
수정일: 2024-03-24
이 가이드에는 Docker를 시작하는 방법에 대한 단계별 지침이 포함되어 있다. 이 가이드는 다음과 같은 내용을 보여준다:
- 이미지를 빌드하고 컨테이너로 실행하는 방법.
- Docker Hub을 사용하여 이미지를 공유하는 방법.
- 데이터베이스와 함께 여러 컨테이너를 사용하여 Docker 애플리케이션을 배포하는 방법.
- Docker Compose를 사용하여 애플리케이션을 실행하는 방법.
컨테이너란 무엇인가?
컨테이너는 호스트 머신에서 실행되는 샌드박스 프로세스로, 해당 호스트 머신에서 실행되는 다른 모든 프로세스와 격리되어 있다. 이러한 격리는 오랫동안 리눅스에 존재해 온 커널 네임스페이스와 cgroup 기능을 활용한다. Docker는 이러한 기능을 접근하기 쉽고 사용하기 쉽게 만든다.
요약하자면, 컨테이너는:
- 이미지의 실행 가능한 인스턴스다. Docker API 또는 CLI를 사용하여 컨테이너를 생성, 시작, 중지, 이동 또는 삭제할 수 있다.
- 로컬 머신, 가상 머신에서 실행하거나 클라우드에 배포할 수 있다.
- 이식성이 높다(모든 OS에서 실행 가능).
- 다른 컨테이너와 격리되어 있으며 자체 소프트웨어, 바이너리, 구성 등을 실행한다.
chroot
에 익숙하다면 컨테이너를 chroot
의 확장 버전으로 생각할 수 있다. 파일 시스템은 이미지에서 제공된다. 하지만 컨테이너는 chroot를 사용할 때 사용할 수 없는 추가 격리 기능을 제공한다.
이미지란 무엇인가?
실행 중인 컨테이너는 격리된 파일 시스템을 사용한다. 이 격리된 파일 시스템은 이미지에서 제공되며, 이미지에는 애플리케이션을 실행하는 데 필요한 모든 것(모든 종속성, 구성, 스크립트, 바이너리 등)이 포함되어야 한다. 이미지에는 환경 변수, 실행할 기본 명령 및 기타 메타데이터와 같은 컨테이너에 대한 다른 구성도 포함되어 있다.