Infra/Docker

Docker 명령어 정리

토이 개발 스토리 2023. 12. 9. 22:41

AWS ECS 학습과 Docker 명령어 정리 

최근 AWS의 ECS(Elastic Container Service) 학습을 시작했습니다. 

AWS ECS는 컨테이너 기반의 CI/CD 서비스를 제공하기 때문에 Docker와 컨테이너에 대한 이해가 필수적입니다. 

이에 따라 Docker 명령어를 정리해보았습니다. 

Docker 명령어 정리 

1. 가장 자주 쓰는 명령어

docker run [image name]

이 명령어는 사실상 다음 두 명령어를 함께 실행하는 것입니다:

docker create [image name] 
docker start [image name]

2. Docker 명령어 상세 설명 

2.1. docker create [image name]

컨테이너를 생성하는 명령어입니다. 

컨테이너는 이미지의 인스턴스로, 생성되었지만 아직 실행되지 않은 상태입니다.

2.2. docker start [container id]

생성된 컨테이너를 실행하는 명령어입니다.

컨테이너의 파일 시스템이 그대로 유지되기 때문에 컨테이너를 중지하고 다시 시작해도 이전 상태를 그대로 복원할 수 있습니다.

2.3. docker run -it [image name]

이미지를 기반으로 컨테이너를 생성하고, 터미널을 유지한 채로 인터랙티브하게 실행합니다.

docker run -it ubuntu /bin/bash

이 명령어는 Ubuntu 이미지를 기반으로 컨테이너를 실행하고 bash 쉘을 여는 예시입니다. 

2.4. docker ps 

현재 실행 중인 컨테이너 목록을 보여주는 명령어입니다. 

docker ps

2.5. docker ps --all 

실행 중이지 않은 컨테이너를 포함하여 모든 컨테이너 목록을 보여줍니다.

docker ps --all

2.6. docker system prune 

현재 실행 중이지 않은 모든 컨테이너와 불필요한 데이터를 삭제합니다.

docker system prune

2.7. docker run -d [image name] 

컨테이너를 백그라운드에서 실행하는 명령어입니다. 

현재 터미널에 표시되지 않습니다.

docker run -d nginx

2.8. docker logs [container id] 

백그라운드에서 실행 중인 컨테이너의 로그를 확인하는 명령어입니다. 

docker logs [container id]

2.9. docker stop [container id] 

컨테이너를 정상적으로 종료하는 명령어입니다.

docker stop [container id]

이 명령어는 SIGTERM/SIGINT 신호를 보내고, 10초 동안 작업을 마칠 시간을 준 뒤 SIGKILL 신호를 보냅다.

2.10. docker kill [container id]

컨테이너를 즉시 강제 종료하는 명령어입니다.

docker kill [container id]

3. 추가적으로 자주 사용하는 Docker 명령어

3.1. docker pull [image name] 

Docker Hub로부터 이미지를 다운로드하는 명령어입니다.

docker pull ubuntu

3.2. docker build -t [image name] [Dockerfile directory] 

지정된 디렉토리에 있는 Dockerfile을 사용하여 이미지를 생성하는 명령어입니다.

docker build -t myapp:latest .

3.3. docker exec -it [container id] [command] 

이미 실행 중인 컨테이너에서 명령어를 실행하는 명령어입니다.

docker exec -it [container id] /bin/bash

3.4. docker rm [container id] 

중지된 컨테이너를 삭제하는 명령어입니다.

docker rm [container id]

3.5. docker rmi [image id] 

이미지를 삭제하는 명령어입니다.

docker rmi [image id]

3.6. docker tag [image id] [repository]

이미지에 태그를 추가하는 명령어입니다.

docker tag [image id] myrepo/myapp:latest

3.7. docker push [repository]

이미지를 Docker Hub에 업로드하는 명령어입니다.

docker push myrepo/myapp:latest

3.8. docker inspect [container id/image id] 

컨테이너 또는 이미지의 상세 정보를 JSON 형식으로 출력하는 명령어입니다.

docker inspect [container id]

3.9. docker-compose up docker-compose.yml 

파일에 정의된 서비스를 생성하고 시작하는 명령어입니다.

docker-compose up

3.10. docker-compose down docker-compose.yml 

파일에 정의된 서비스를 중지하고 제거하는 명령어입니다.

docker-compose down

4. Container ID 단축 사용

 Docker 명령어에서 컨테이너 ID는 전체를 입력하지 않고 앞 몇 글자만으로도 명령어를 실행할 수 있습니다. 

예를 들어, 컨테이너 ID가 abc123라면, 다음과 같이 단축해서 사용할 수 있습니다

docker stop abc

여러 컨테이너 ID가 중복되지 않는 한 앞부분만 입력해도 Docker는 올바른 컨테이너를 인식합니다.