Docker 주요 명령어

💡 주황색 표시된 명령어만 잘 쓸 수 있으면 됨!


docker search {image name} : 이미지 검색
ex) docker search ubuntu : ubuntu 이미지 검색

docker search —limit-5 ubuntu : 5개 까지 검색

docker pull ubuntu : ubuntu 최신 이미지 다운로드

docker pull ubuntu:20.04 : 특정 이미지 다운로드

docker images : 이미지 확인

docker rmi 이미지ID(또는 이미지 REPOSITORY 이름)  : 이미지 삭제

docker image rm 이미지ID(또는 이미지 REPOSITORY 이름) : 이미지 삭제

docker create ubuntu : 컨테이너 생성(다운받은 ubuntu 이미지로 생성)

docker create —name myUbuntu ubuntu : 이름을 myUbuntu로 컨테이너 생성

docker ps : 현재 실행 중인 컨테이너 확인

docker ps -a : 모든 컨테이너 확인

docker ps -a -q : 모든 컨테이너의 ID만 확인

docker rm {ID or name} : 컨테이너 삭제

docker rmi {image} : 이미지 삭제

docker start {ID or name} : 컨테이너 실행

docker run {image} : 이미지 생성과 동시에 실행(옵션이 중요)
** docker pull 과 docker create를 동시에 시행하는 느낌 (pull과 create는 사용할 일이 많지 않음)
** 밑의 옵션이 중요함

  • -i : 컨테이너 입력(STDIN)을 열어놓는 옵션(주로 -it로 -i옵션과 -t옵션을 함께 사용)
  • -t : 가상 터미널(tty)을 할당하는 옵션
  • --name : 컨테이너 이름을 설정하는 옵션
  • -d : 컨테이너를 백그라운드에서 실행하는 옵션
  • --rm : 컨테이너 종료시 컨테이너를 자동으로 삭제하는 옵션
  • -p : 호스트와 컨테이너 포트를 연결하는 옵션
  • -v : 호스트와 컨테이너 디렉토리를 연결하는 옵션
    **docker는 이미지 기반으로 컨테이너를 만들기 때문에, 컨테이너 상에서 파일을 생성 및 수정하더라도 컨테이너가 종료되면 해당 파일은 없어지게 됨. 이를 보완하기 위해 특정 폴더를 공유. 해당 폴더는 호스트 PC 상에 있기 때문에, 컨테이너가 종료되더라도 파일을 유지할 수 있음
  • --restart always : 도커 데몬이 실행됐을 때 컨테이너 자동으로 실행

    ex)
    docker run -itd -p 5001:5000 -v /host/directory:/workspace -—name test_container -—restart always ubuntu:20.04
    
    
    - ubuntu:20.04 이미지를 받아 컨테이너를 생성 
    (docker run ubuntu:20.04)
    
    - 해당 컨테이너는 백그라운드에서 실행되며, 터미널 입력이 가능 
    (-itd)
    
    - 해당 컨테이너는 호스트 PC의 5001 포트와 컨테이너의 5000포트를 연결(포워딩)
    (-p 5001:5000)
    
    - 해당 컨테이너는 호스트 PC의 /host/directory 경로와 컨테이너의 /workspace 경로를 연결 
    (-v /host/directory:/workspace)
    
    - 해당 컨테이너의 이름은 test_container
    (—name test_container)
    
    - 해당 컨테이너는 도커 데몬이 샐행됐을 때 컨테이너가 자동으로 실행됨
    (—resatrt always)
    

docker attach {ID or name} : 실행중인 컨테이너에 접속

docker stop {ID or name} : 실행중인 컨테이너 종료하기

docker pause {ID or name} : 컨테이너 중지(멈춤)

docker unpause {ID or name} : 멈춘 컨테이너 다시 실행

docker restart {ID or name} : 컨테이너 재실행

docker system df : docker가 사용하고 있는 저장매체 현황 확인

docker container stats : 실행중인 컨테이너 사용 리소스 확인

docker exec {옵션} {컨테이너ID or 컨테이너name} {명령} {인자} : 실행중인 컨테이너에 명령 실행하기
ex) docker exec -it apachweb /bin/sh

docker stop $(docker ps -a -q) : 모든 컨테이너 중지

docker rm $(docker ps -a - q) : 모든 컨테이너 삭제

docker rmi $(docker ps  -a -q) : 모든 이미지 삭제

docker container prune : 정지된 컨테이너 삭제

docker image prune : 실행중인 컨테이너 이미지 외의 이미지 삭제

docker system prune : 정지된 컨테이너, 실행중인 컨테이너 이미지 외의 이미지, 볼륨, 네트워크 삭제