본문 바로가기
가상화 & 컨테이너화/Docker

Docker 명령어

by yororing 2024. 8. 15.

00 개요

  • docker의 image, container, compose에 관한 명령어들을 정리함

01 Docker 관련 명령어

0. Docker 도움말 (매뉴얼)

  • docker 명령어에 대한 도움말: docker {명령어} --help
    • 예) docker run --help

1. Docker Image

  • 이미지 빌드
    • Dockerfile을 이용해서 이미지 생성 (가장 많이 사용됨): docker build -t {이미지명:태그명} {dockerfile 경로} 
  • 이미지 삭제
    • 단일 이미지 삭제: docker image rmi {이미지명 또는 이미지ID}
    • 모든 이미지 삭제 (컨테이너가 있어서 삭제 불가 시 강제로 삭제하는 -f 옵션 사용): docker rmi {옵션} {이미지명 또는 이미지ID}
  • 이미지 조회
    • 이미지 보기: docker images {옵션}
      • 모든 (미사용, dangling 포함) 이미지 확인: docker images -a 
      • 현재 이미지 목록 확인: docker images ls
    • Dockerhub에서 이미지 검색: docker search {이미지명}
  • 이미지 다운로드
    • Dockerhub에서 이미지 가져오기: docker image pull {이미지명:태그}
  • 실행한 docker container를 이미지로 생성
    • 구동한 Docker 컨테이너를 commit(변경사항을 다시 이미지로 만듬): docker container commit {컨테이너명} {commit내용}

2. Docker Container

  • 컨테이너 생성
    • 컨테이너 생성: docker create {옵션} --name {컨테이너명} {이미지 Repository}
    • 컨테이너 생성 + 실행: docker run {옵션} --name {컨테이너명} {이미지 Repository}
      • 주로 사용하는 명령어: docker run -it --name {컨테이너명} -p {호스트 port}:{컨테이너 port}
      • 옵션:
        • -i: 표준 입력(stdin)을 활성화, 보통 이 옵션을 사용하여 Bash 에 명령 입력
        • -t: TTY 모드(pseudo-TTY)를 사용, Bash를 사용하려면 이 옵션 설정 필수 (미설정 시 명령을 입력할 수는 있으나 Shell이 표시되지 않음
        • -d: 데몬 프로세스로 실행(백그라운드)해 프로세스가 끝나도 유지
        • --name {이름}: 컨테이너 이름 지정
        • -p: 호스트와 컨테이너의 포트를 연결 - 외부 접근 설정(도커 컨테이너는 기본적으로 외부에서 접근할 수 없게 구성되어 있음)
        • --rm: 컨테이너가 종료되면{내부에서 돌아가는 작업이 끝나면} 컨테이너를 제거
        • -v: 호스트와 컨테이너의 디렉토리를 연결
  • 컨테이너 이름 변경
    • docker rename {기존 이름} {변경할 이름}
  • 컨테이너 구동 확인
    • 실행 중인 컨테이너 리스트: docker ps {옵션}
    • 모든 컨테이너의 리스트 출력: docker container ps -a
  • 컨테이너 삭제
    • 단일 컨테이너 삭제: docker rm {컨테이너명 또는 컨테이너ID}
    • 모든 컨테이너 삭제: docker rm $(docker ps -a -q) 또는 docker rmi $(docker images -q) -f
  • 컨테이너 실행, 종료
    • 컨테이너 실행: docker start {이미지명:태그}
    • 단일 컨테이너 중지: docker stop {컨테이너명 또는 컨테이너ID}
    • 모든 컨테이너 중지: docker stop $(docker ps -aq)
  • 컨테이너 내부 접속, 내부 종료
    • 실행중인 컨테이너 접속: docker exec -it {컨테이너명 또는 컨테이너 ID} /bin/bash 또는 docker attach {이미지명:태그} 
    • 실행중인 컨테이너 접속 종료: exit 또는 Ctrl + D

3. Docker Compose

  • 실행
    • 컴포즈 파일에 정의된 컨테이너들을 빌드 후 실행: docker-compose up
    • 컴포즈 파일에 정의된 컨테이너들을 빌드 후 백그라운드로 실행: docker-compose up -d
  • 재시작
    • 컴포즈 파일로 실행된 컨테이너들 재시작: docker-compose restart
    • 컴포즈 파일로 실행된 컨테이너들 중 해당 컨테이너만 재시작: docker-compose restart {컨테이너명 또는 컨테이너ID}
  • 종료
    • 컴포즈 파일로 실행된 컨테이너들 종료: docker-compose down
    • 컴포즈 파일로 실행된 컨테이너들 종료 및 볼륨 제거: docker-compoase down -v
  • 삭제
    • 컴포즈 파일로 실행된 컨테이너들 종료 및 삭제: docker-compoase down?
  • 조회
    • 컴포즈 파일로 실행된 컨테이너들 확인: docker-compose ps
  • 빌드
    • 컴포즈 파일에 정의된 컨테이너들 빌드: docker-compose build
    • 컴포즈 파일에 정의된 컨테이너들 중 해당 컨테이너만 빌드: docker-compose build {컨테이너명 또는 컨테이너ID}

참조

  1. https://hstory0208.tistory.com/entry/Docker-도커-명령어-총모음집-image-container-compose
  2. https://docs.docker.com/reference/cli/docker/
  3.   
  4.  (docker compose) https://docs.docker.com/reference/cli/docker/compose/
  5.  
  6.