이미지
- 이미지는 Docker의 두 가지 핵심 구성 요소 중 하나(다른 하나는 "컨테이너")
- 이미지는 컨테이너를 위한 청사진/템플릿
- 이미지는 읽기 전용이며 애플리케이션과 애플리케이션 환경(운영 체제, 런타임, 도구 등)을 포함
- 이미지는 자체적으로 실행되지 않으며, 대신 컨테이너로 실행될 수 있다.
- 이미지는 사전 빌드된 이미지(예: DockerHub에서 찾을 수 있는 공식 이미지)거나 Dockerfile을 정의하여 직접 이미지를 빌드할 수 있다.
- Dockerfile에는 이미지가 빌드될 때 실행되는 명령어들이 포함되어 있으며( docker build . ), 각 명령어는 이미지에 레이어를 생성한다. 레이어는 이미지를 효율적으로 다시 빌드하고 공유하는 데 사용된다.
- CMD 명령어: 이는 이미지가 빌드될 때 실행되는 것이 아니라, 해당 이미지를 기반으로 컨테이너가 생성되고 시작될 때 실행된다.
컨테이너
- Docker의 또 다른 핵심 구성 요소
- 이미지의 실행 중인 인스턴스
- 컨테이너를 생성할 때( docker run ), 얇은 읽기-쓰기 레이어가 이미지 위에 추가된다. 따라서 동일한 이미지를 기반으로 여러 컨테이너를 시작할 수 있다. 모든 컨테이너는 격리된 상태로 실행되며, 애플리케이션 상태나 작성된 데이터를 공유하지 않는다.
- 컨테이너를 생성하고 시작해야 컨테이너 내부의 애플리케이션을 시작할 수 있다. 따라서 개발 및 프로덕션에서 실행되는 것은 컨테이너이다.
주요 Docker 명령어
모든 명령어의 전체 목록을 보려면 명령어 뒤에 --help를 추가하자. ex. docker --help, docker run --help 등. 또한 모든 명령어와 기능에 대한 자세한 문서를 보려면 공식 문서를 참조:
**https://docs.docker.com/engine/reference/run/**
내용이 매우 방대하다. 실제로는 그 기능과 명령어의 일부만 필요할 것!
- docker build . : Dockerfile을 빌드하고 이를 기반으로 이미지를 생성
- -t NAME:TAG : 이미지에 NAME과 TAG를 할당
- docker run IMAGE_NAME : 이미지 IMAGE_NAME(또는 이미지 ID)을 기반으로 새 컨테이너를 생성하고 시작
- --name NAME : 컨테이너에 NAME을 할당. 이 이름은 정지 및 제거 등에 사용될 수 있다.
- -d : 컨테이너를 분리 모드로 실행. 즉, 컨테이너에서 출력된 내용이 보이지 않으며, 명령 프롬프트/터미널이 컨테이너가 정지할 때까지 기다리지 않는다.
- -it : 컨테이너를 "인터랙티브" 모드로 실행 컨테이너/애플리케이션이 명령 프롬프트/터미널을 통해 입력을 받을 준비. -it 플래그를 사용할 때는 CTRL + C로 컨테이너를 중지할 수 있다.
- --rm : 컨테이너가 정지될 때 자동으로 제거
- docker ps : 실행 중인 모든 컨테이너 나열
- -a : 정지된 컨테이너를 포함한 모든 컨테이너 나열
- docker images : 로컬에 저장된 모든 이미지 나열
- docker rm CONTAINER : CONTAINER 이름을 가진 컨테이너 제거(컨테이너 ID도 사용 가능)
- docker rmi IMAGE : 이름/ID로 이미지를 제거
- docker container prune : 정지된 모든 컨테이너 제거
- docker image prune : "dangling" 이미지(태그가 없는 이미지) 제거
- -a : 로컬에 저장된 모든 이미지 제거
- docker push IMAGE : 이미지를 DockerHub(또는 다른 레지스트리)에 푸시
- 이미지 이름/태그에 레포지토리 이름/URL이 포함되어야 함
- docker pull IMAGE : DockerHub(또는 다른 레지스트리)에서 이미지를 풀(다운로드)
- 이 작업은 docker run IMAGE를 실행하고 이미지가 이전에 풀되지 않은 경우 자동으로 수행
'log.info' 카테고리의 다른 글
[Redis] Redis에 대해 알아보자 ! (0) | 2024.06.16 |
---|---|
[Docker] 데이터 관리 및 볼륨 (0) | 2024.06.14 |
[Docker] 이미지 만들기 (0) | 2024.05.29 |
[Docker] 컨테이너 업데이트, Docker Compose (0) | 2024.05.28 |
[Docker] 컨테이너 실행 및 도커 기본 명령어 (0) | 2024.05.28 |