Dandy Now!
  • Docker 이미지 및 컨테이너 관리 명령어 실습(이미지 다운로드/조회/삭제, 컨테이너 생성/실행/조회/중지/삭제)
    2025년 07월 08일 11시 31분 24초에 업로드 된 글입니다.
    작성자: DandyNow
    728x90
    반응형

    Docker 이미지 및 컨테이너 관리 명령어 실습(이미지 다운로드/조회/삭제, 컨테이너 생성/실행/조회/중지/삭제)

    1. 도커 이미지 다운로드 및 확인

    • docker pull [이미지 이름][:태그]: 도커 이미지를 다운로드하는 명령어이다. 태그를 명시하지 않으면 기본적으로 latest 태그의 이미지를 다운로드한다.
    docker pull nginx
    docker pull nginx:1.29.0-bookworm-perl
    • docker image ls: 현재 로컬에 다운로드된 도커 이미지 목록을 확인하는 명령어이다.
    docker image ls
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    nginx               latest              9592f5595f2b        13 days ago         192MB
    nginx               1.29.0-bookworm-perl  25508052a323        13 days ago         240MB

    2. 도커 이미지 삭제

    • docker image rm [이미지 ID 또는 이름]: 특정 도커 이미지를 삭제하는 명령어이다. 이미지 ID의 앞부분만 입력해도 삭제가 가능하다.
    docker image rm 255 # nginx:1.29.0-bookworm-perl 이미지 삭제
    • 실행 중이거나 중단된 컨테이너가 이미지를 사용 중일 때 삭제 오류: 이미지가 컨테이너에 의해 사용 중인 경우, 강제로 삭제하려면 -f 옵션을 사용한다.
    docker image rm 959 # 사용 중인 이미지 삭제 시도 (에러 발생)
    docker image rm -f 959 # 강제 삭제

    3. 도커 이미지 전체 삭제 시도 (오류 발생)

    • docker image rm $(docker images -q): 모든 도커 이미지 ID를 가져와서 삭제하는 명령어이다. cmd 환경에서는 $() 문법이 동작하지 않아 오류가 발생한다. PowerShell에서는 정상 동작한다.
    docker image rm $(docker images -q) # cmd 환경에서 오류 발생

    4. 도커 컨테이너 생성 및 실행

    • docker create [이미지 이름]: 도커 컨테이너를 생성하지만 실행하지는 않는다.
    docker create nginx
    • docker ps -a: 모든 컨테이너 목록을 확인하는 명령어이다. (-a 옵션은 중단된 컨테이너도 포함하여 보여준다.)
    docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                   PORTS               NAMES
    873ed746a092        nginx               "/docker-entrypoint.…"   26 seconds ago      Created                                      confident_dirac
    49426ebead2e        nginx               "/docker-entrypoint.…"   22 hours ago        Exited (0) 2 hours ago                       my-nginx
    • docker start [컨테이너 ID 또는 이름]: 생성된 컨테이너를 실행하는 명령어이다.
    docker start 873
    • docker ps: 현재 실행 중인 컨테이너 목록을 확인하는 명령어이다.
    docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
    873ed746a092        nginx               "/docker-entrypoint.…"   About a minute ago   Up 7 seconds        80/tcp               confident_dirac
    • docker run [이미지 이름]: 이미지가 없으면 다운로드 후 컨테이너를 생성하고 실행하는 명령어이다. 컨테이너가 foreground로 실행되어 터미널을 점유한다.
    docker run nginx
    • docker run -d [이미지 이름]: 컨테이너를 백그라운드(-d 또는 --detach)로 실행하는 명령어이다.
    docker run -d nginx
    • docker run -d --name [컨테이너 이름] [이미지 이름]: 컨테이너에 이름을 지정하여 백그라운드로 실행한다.
    docker run -d --name my-web-server nginx
    • docker run -d -p [호스트 포트]:[컨테이너 포트] [이미지 이름]: 호스트의 특정 포트(-p 또는 --publish)를 컨테이너의 포트에 연결하여 실행한다(크롬 브라우저의 시크릿 모드에서 실습할 것, 일반 모드에서는 단축키 ctrl + shift + r 적절히 사용할 것).
    docker run -d -p 4000:80 nginx

    5. 도커 컨테이너 중지 및 삭제

    • docker stop [컨테이너 ID 또는 이름]: 실행 중인 컨테이너를 정상적으로 중지하는 명령어이다.
    docker stop 873
    • docker rm [컨테이너 ID 또는 이름]: 중지된 컨테이너를 삭제하는 명령어이다. 여러 컨테이너를 동시에 삭제할 수 있다.
    docker rm 873 96 49 # 여러 컨테이너 ID를 한 번에 삭제
    • docker kill [컨테이너 ID 또는 이름]: 실행 중인 컨테이너를 강제로 종료하는 명령어이다. stop보다 빠르지만, 컨테이너에 시그널을 보내지 않으므로 데이터 손실의 위험이 있다.
    docker kill d4
    • docker rm -f [컨테이너 ID 또는 이름]: 실행 중인 컨테이너를 강제로 삭제하는 명령어이다. stoprm을 한 번에 처리하는 것과 같다.
    docker rm -f 08 ab 86
    • docker rm -f $(docker ps -qa): 모든 중지되거나 실행 중인 컨테이너를 강제로 삭제하는 명령어이다. powershell에서는 정상 동작하지만 cmd에서는 오류가 발생한다.

    6. 사용하지 않는 도커 이미지 정리

    • docker image prune -a: 사용하지 않는 모든 도커 이미지를 삭제하는 명령어이다. 컨테이너와 연결되지 않은 모든 이미지를 삭제한다. 삭제 전 확인 메시지가 나타난다.
    docker image prune -a
    • docker image prune -a -f: 확인 메시지 없이 강제로 모든 사용하지 않는 도커 이미지를 삭제하는 명령어이다.
    docker image prune -a -f

    728x90
    반응형
    댓글