[Docker] Docker 명령어

김선형·2025년 8월 22일

Docker

목록 보기
3/6

이미지 조회

docker search [imagename] #레지스트리에 이미지가 존재하는지 여부를 검색

✏️ Docker Registry?
사용자가 사용할 수 있도록 데이터베이스를 통해 이미지를 제공한다. 누구나 이미지를 만들어 푸시할 수 있으며, 푸시된 이미지는 다른 사람들에게 공유 가능하다. 대표적으로 DockerHub가 있다.

이미지 다운로드

docker pull [imagename] #이미지 다운로드. docker pull [imagename]:latest와 동일
docker pull [imagename]:[tags] #특정 버전의 이미지 다운로드

이미지 조회 및 삭제

docker image ls #다운로드한 모든 이미지 조회

✏️ 이미지 조회 시 제공되는 정보
REPOSITORY: 이미지명
TAG: 이미지 태그명
IMAGE ID: 이미지 ID
CREATED: 이미지 생성 날짜
SIZE: 이미지 크기

docker image rm [imagename/imageID] #특정 이미지 삭제. 컨테이너에서 사용하고 있지 않은 이미지만 삭제 가능
docker image rm -f [imagename/imageID] #중지된 컨테이너에서 사용하고 있는 이미지 강제 삭제. 실행 중인 컨테이너에서 사용하고 있는 이미지 강제 삭제 불가능
docker image rm $(docker images -q) #컨테이너에서 사용하고 있지 않은 이미지 전체 삭제
docker image rm -f $(docker images -q) #컨테이너에서 사용하고 있는 이미지 포함 전체 삭제

✏️ docker images -q는 시스템에 있는 모든 이미지의 ID를 반환하며, 이때 -q를 통해 상세 정보가 아닌 각 이미지의 고유 ID만 표시하도록 한다.

컨테이너 생성 및 실행

docker create [imagename]:[tags] #이미지를 기반으로 컨테이너 생성 (컨테이너 실행 X)
#로컬 환경에 다운받은 이미지가 없는 경우, Dockerhub에서 이미지를 다운로드하여 컨테이너를 생성한다.
docker start [containername/containerID] #정지되어 있는 컨테이너 실행
docker restart [containername/containerID] #컨테이너 재시작
docker run [imagename]:[tags] #이미지를 기반으로 컨테이너 생성 및 실행
# foreground에서 실행되어 추가적인 명령어 조작이 불가능하다. Ctrl + C로 종료할 수 있다.
docker run -d [imagename]:[tags] #이미지를 기반으로 컨테이너 생성 및 백그라운드 실행
docker run --name [containername] [imagename]:[tags] #컨테이너 이름을 지정하여 이미지를 기반으로 컨테이너 생성 및 실행
docker run -p [hostport]:[containerport] [imagename]:[tags] #이미지를 기반으로 컨테이너 생성 및 호스트 포트와 컨테이너 포트 연결

✏️ docker run -p 8888:8080은 도커를 실행하는 호스트의 8888번 포트를 컨테이너의 8080 포트로 연결하도록 설정한다.

컨테이너 조회, 중지 및 삭제

docker ps #실행 중인 컨테이너 조회
docker ps -a #모든 컨테이너 조회
docker stop [containername/containerID] #실행 중인 컨테이너 중단
docker kill [containername/containerID] #실행 중인 컨테이너 강제 중단
docker rm [containername/containerID] #중지되어 있는 컨테이너 삭제
docker rm -f [containername/containerID] #실행 중인 컨테이너 삭제
docker rm $(docker ps -qa) #중지되어 있는 모든 컨테이너 삭제
docker rm -f $(docker ps -qa) #실행되고 있는 모든 컨테이너 삭제

컨테이너 로그 조회

docker logs [containername/containerID] #컨테이너의 모든 로그 조회
docker logs --tail [loglinenumber] [containername/containerID] #컨테이너의 최근 로그를 loglinenumber만큼만 조회
docker logs -f [containername/containerID] #기존 로그 조회 + 생성되는 로그 실시간 확인
docker logs --tail 0 -f [containername/containerID] #기존 로그 조회 X + 생성되는 로그 실시간 확인

실행 중인 컨테이너 내부 접속

docker exec [containername/containerID] [command] [parameter] #외부에서 실행 중인 컨테이너 안의 명령 실행
docker exec -it [containername/containerID] [command] bash #실행 중인 컨테이너 내부 shell 접속
# -it(i: interactive, t: Pseudo-tty) 옵션을 통해 명령어를 입력하고 결과를 확인할 수 있다. 해당 옵션을 사용하지 않으면 명령어를 1번만 실행시키고 종료된다.
# Ctrl + D 또는 exit를 입력하여 컨테이너 내부에서 나올 수 있다.

운영 환경 명령어

docker container prune #중지된 모든 컨테이너 제거
docker image prune #태그가 없는 모든 이미지 파기
docker system prune #사용하지 않는 모든 데이터 (이미자, 컨테이너, 볼륨, etc.) 삭제
docker container stats #컨테이너 사용 현황 출력
profile
선형의 비선형적 기록 🐜

0개의 댓글