도커 기본
도커(Docker)는 애플리케이션을 컨테이너 내에서 실행하기 위한 플랫폼 및 도구 세트입니다.
컨테이너는 애플리케이션과 그 종속성을 가상 환경에서 분리하여 실행합니다.
도커의 주요 개념과 기능에 대해 설명합니다.
1. 컨테이너(Container): 컨테이너는 애플리케이션, 라이브러리, 및 필요한 설정 파일 등을 포함하는 가볍고 독립적인 실행 환경입니다. 이는 애플리케이션을 환경에 구애받지 않고 일관되게 실행할 수 있게 해줍니다.
2. 이미지(Image): 이미지는 컨테이너를 실행하기 위한 템플릿입니다. 이미지는 애플리케이션 실행에 필요한 코드, 라이브러리, 환경 변수, 파일 등을 포함합니다. 사용자는 이미지를 기반으로 컨테이너를 생성하고 실행할 수 있습니다.
3. 도커 허브(Docker Hub): 도커 허브는 도커 이미지를 공유하기 위한 클라우드 기반 서비스입니다. 여기서 사용자는 이미지를 업로드하고 다운로드할 수 있으며, 공식 이미지와 다른 사용자가 생성한 이미지를 찾을 수 있습니다.
4. 도커 파일(Dockerfile): 도커 파일은 커스텀 이미지를 생성하기 위한 명세서입니다. 이 파일은 이미지를 구축하는 단계를 순서대로 기술합니다.
5. 레이어(Layers): 도커 이미지는 여러 레이어로 구성됩니다. 각 레이어는 이미지의 한 부분을 나타내며, 이미지를 업데이트하거나 변경할 때 변경된 레이어만 재구축됩니다.
6. 도커 컴포즈(Docker Compose): 여러 컨테이너를 함께 관리하고 구성하기 위한 도구입니다. 이는 YAML 파일을 사용하여 여러 컨테이너의 설정을 정의하고 실행합니다.
7. 볼륨(Volumes): 볼륨은 데이터를 컨테이너 밖에 저장하고, 컨테이너 간에 데이터를 공유할 수 있는 방법을 제공합니다. 이를 통해 컨테이너를 삭제해도 데이터가 유지됩니다.
도커를 사용하면 애플리케이션의 배포, 확장 및 관리가 용이해지며, 다양한 환경에서의 일관된 실행이 가능해집니다.
도커의 기본 명령어
도커를 사용할 때 기본적으로 알아야 할 몇 가지 주요 명령어를 소개합니다.
이 명령어들은 도커를 사용하여 컨테이너를 관리하고 이미지를 다루는 데 필요합니다.
1. 이미지 관련 명령어:
- `docker pull [이미지 이름]`: 도커 허브나 다른 이미지 레지스트리에서 이미지를 다운로드합니다.
- `docker build -t [태그] .`: 현재 디렉토리의 Dockerfile을 사용하여 새 이미지를 생성합니다.
- `docker images`: 로컬 시스템에 있는 모든 도커 이미지 목록을 표시합니다.
- `docker rmi [이미지 이름]`: 특정 이미지를 삭제합니다.
2. 컨테이너 관련 명령어:
- `docker run [옵션] [이미지 이름]`: 새 컨테이너를 생성하고 실행합니다. 여기서 옵션으로 `-d` (백그라운드 실행), `-p` (포트 매핑), `-v` (볼륨 마운트) 등이 있습니다.
- `docker ps`: 실행 중인 모든 컨테이너를 보여줍니다. `-a` 옵션을 사용하면 중지된 컨테이너도 포함해 표시합니다.
- `docker stop [컨테이너 ID 또는 이름]`: 실행 중인 컨테이너를 중지합니다.
- `docker rm [컨테이너 ID 또는 이름]`: 중지된 컨테이너를 삭제합니다.
3. 도커 네트워크 관련 명령어:
- `docker network ls`: 도커가 관리하는 네트워크의 목록을 표시합니다.
- `docker network create [네트워크 이름]`: 새로운 사용자 정의 네트워크를 생성합니다.
4. 도커 볼륨 관련 명령어:
- `docker volume create [볼륨 이름]`: 새 볼륨을 생성합니다.
- `docker volume ls`: 모든 도커 볼륨의 목록을 표시합니다.
- `docker volume rm [볼륨 이름]`: 특정 볼륨을 삭제합니다.
이 명령어들은 도커를 사용하는데 있어 기본적이며, 다양한 옵션과 함께 사용될 수 있습니다. 사용하는 환경과 필요에 따라 이 명령어들을 조합하고 확장하여 사용할 수 있습니다.
'[개발] Infrastructure > Container' 카테고리의 다른 글
Skaffold (0) | 2024.08.10 |
---|---|
JIB (0) | 2024.08.10 |
Docker 이미지 빌드하기 (1) | 2023.11.22 |
Docker 로드밸런서 구성하기 (0) | 2023.11.22 |