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 : 정지된 컨테이너, 실행중인 컨테이너 이미지 외의 이미지, 볼륨, 네트워크 삭제