1 컨테이너(Container)
- 도커의 핵심 개념 중 하나로, 애플리케이션과 그 종속성을 격리된 환경에서 실행하는 단위다.
- 호스트 시스템의 리소스와 격리되어 있어 다른 컨테이너나 호스트 시스템에 영향을 주거나 받지 않는다.
- 각 컨테이너는 독립적인 파일 시스템, 네트워크 스택 및 프로세스 공간을 가진다.
- 컨테이너는 가상 머신보다 가볍다.
- 컨테이너를 개발한 환경에서 다른 환경으로 쉽게 배포할 수 있다.
- Docker Hub와 같은 레지스트리, Docker Compose와 같은 도구, Kubernetes와 같은 오케스트레이션 시스템과 통합되어 있어,
컨테이너 관리 및 배포를 더욱 효과적으로 수행할 수 있다.
2. 이미지(Image)
- 컨테이너를 생성하는 템플릿으로, 애플리케이션 및 종속성의 스냅샷이다.
- 이미지는 읽기 전용이며 변경할 수 없다. 변경하려면 새로운 이미지를 생성해야 한다.
- 도커 이미지는 Docker Hub와 같은 레지스트리에 저장되며, 이미지를 기반으로 컨테이너를 생성한다.
- 여러 애플리케이션에 공통적으로 필요한 라이브러리나 도구를 이미지로 만들어 재사용할 수 있다.
3. 도커 레지스트리(Docker Registry)
- 도커 이미지를 저장하고 공유하는 중앙화된 저장소이다.
- Docker Hub는 가장 널리 사용되는 도커 레지스트리 중 하나이지만, 개인 또는 조직 내부에 자체 레지스트리를 구축할 수도 있다.
(Amazon Elastic Container Registry (ECR), Google Container Registry (GCR), Azure Container Registry (ACR))
4. 도커 컴포즈(Docker Compose)
- 여러 개의 컨테이너로 구성된 애플리케이션을 정의하고 실행하기 위한 도구이다.
컴포즈 파일(YAML 형식)을 사용하여 애플리케이션의 서비스와 설정을 정의하고, 한 번에 여러 컨테이너를 실행, 관리할 수 있다.
5. 도커 파일(Dockerfile)
- 도커 이미지를 생성하기 위한 빌드 지침을 포함하는 텍스트 파일이다.
도커 파일을 사용하여 이미지를 빌드하면 애플리케이션과 종속성이 이미지로 패키지 된다.
6. 도커 컨테이너 관리
- 도커 명령을 사용하여 컨테이너를 생성, 시작, 중지, 삭제 및 모니터링할 수 있다. 컨테이너의 로그를 확인하거나 실행 중인 컨테이너에 명령을
실행하는 등 다양한 관리 작업을 수행할 수 있다.
7. 도커 네트워크(Docker Networking)
- 기본적으로 Default Bridge Network에 연결된다. 이 모드에서 컨테이너는 호스트 시스템과 연결되어 외부와 통신할 수 있다.
또한 컨테이너 간 통신도 지원하며, 내부 IP 주소로 서로 통신할 수 있다.
- Host Network로 실행하면 컨테이너는 호스트 시스템의 네트워크 스택에 직접 연결된다.
이로써 컨테이너는 호스트와 동일한 네트워크 환경에서 실행되므로 호스트 포트를 사용할 수 있다.
- Bridge Network로 실행하면 컨테이너 간 통신을 지원하는 독립적인 가상 네트워크를 생성한다. 컨테이너는 동일한 네트워크에 연결하고,
내부 IP 주소로 서로 통신할 수 있다. 이 모드는 다수의 컨테이너를 실행하는 경우 유용하다.
- host None Network로 실행하면 네트워크 연결을 완전히 비활성화하는 모드로, 컨테이너가 외부와 통신하지 않도록 한다.
- Custom Bridge Network로 실행하면 컨테이너 간 통신을 제어하고 격리 수준을 조절할 수 있다.
또한 다양한 컨테이너 그룹을 독립적으로 관리할 수 있다.
- Overlay Network는 여러 호스트에서 컨테이너를 실행하는 경우 사용되며, 컨테이너 간에 안전한 암호화된 통신을 제공한다.
이 모드는 도커 스웜과 같은 오케스트레이션 도구와 함께 사용된다.
8. 도커 볼륨(Docker Volume)
- 호스트 시스템 또는 클라우드 스토리지와 연결되어 컨테이너 내부의 데이터를 영구적으로 보존한다.
이로써 컨테이너를 중지하거나 삭제해도 데이터가 유지된다.
- 여러 컨테이너 간에 데이터를 공유하고 복제할 수 있다.
- 동일한 볼륨을 여러 컨테이너에 연결하여 데이터를 공유하거나 백업을 수행할 수 있다.
- docker volume create 명령어를 사용하여 도커 볼륨을 생성하고, docker volume ls 명령어를 사용하여 볼륨 목록을 확인할 수 있다.
- -v 또는 --volume 플래그를 사용하여 컨테이너에 볼륨을 연결할 수 있다. 이렇게 하면 컨테이너 내부에서 볼륨을 사용할 수 있다.
'Docker' 카테고리의 다른 글
WSL2 Docker에 Postgresql 설치 및 DBeaver 접속 방법 (0) | 2023.10.12 |
---|---|
Docker Hub Ubuntu로 다운 받을 수 있는 이미지 설명 (0) | 2023.10.10 |
Windows10에 Docker 설치 및 확인 (0) | 2023.10.09 |
Docker 사용 이유, 단점, 출시일 (0) | 2023.07.19 |