Post

[도커] 명령어

1. 컨테이너 실행 및 제어 (Lifecycle)

컨테이너를 생성하고, 켜고, 끄고, 지우는 가장 기본적인 작업

명령어주요 옵션설명
docker run-d백그라운드 실행 (Detached mode)
 -p [Host]:[Container]포트 연결 (예: -p 8080:80)
 -v [Host]:[Container]볼륨 마운트 (데이터 보존)
 -e [KEY=VAL]환경 변수 설정
 --name [이름]컨테이너 이름 지정
 --rm종료 시 컨테이너 자동 삭제
 --restart [정책]재시작 정책 (always, on-failure 등)
 -iti, t가 원래 각각 다르지만 이렇게 끄면 입출력 연결, 즉 대화형
docker create(run과 옵션 동일)컨테이너 생성만 하고 시작은 안 함 (Created 상태)
docker start-a (attach)시작하면서 출력 결과 화면에 표시
docker stop 실행 중인 컨테이너 정상 종료 (SIGTERM)
docker rm-f실행 중인 컨테이너 강제 삭제 (SIGKILL)
 -v연결된 익명 볼륨까지 함께 삭제
docker ps-a꺼진 컨테이너 포함 전체 목록 조회
 -q컨테이너 ID만 출력 (스크립트용)

undefined

2. 이미지 빌드 및 관리 (Images)

Dockerfile을 이미지로 만들거나, 이미지를 관리하는 명령어

명령어주요 옵션설명
docker build-t [이름:태그]이미지 이름과 태그 지정
 -f [파일경로]기본 Dockerfile 외 다른 파일 지정
 --no-cache캐시 무시하고 처음부터 다시 빌드
 --build-arg빌드 시점에 변수 값 전달
 --platformCPU 아키텍처 지정 (linux/amd64 등)
docker images 다운로드된 이미지 목록 확인
docker rmi-f강제 삭제 (사용 중이지 않은 경우)
docker pull 레지스트리에서 이미지 다운로드
docker push 레지스트리에 이미지 업로드
docker tag 기존 이미지에 별명(태그) 추가

undefined 이미지 업로드 과정

1
2
3
4
5
6
# local 상에 전에 만들었던 mysql로 빌드
docker build -t db:mysql-8.0.44-debian ./ 
# 태그 생성. git commit 느낌. 빌드한 이미지를 먼저 적고, 아이디/이미지명 순으로 적는다
docker tag db:mysql-8.0.44-debian.2 skdtmr/db:mysql-8.0.44-debian.2 
# 도커 repo로 푸시
docker push skdtmr/db:mysql-8.0.44-debian.3

3. 디버깅 및 관측 (Observability)

컨테이너가 이상할 때 속을 들여다보는 명령어

명령어주요 옵션설명
docker logs-f로그 실시간 확인 (Follow)
 --tail [숫자]끝에서부터 지정한 줄만큼만 출력
 -t로그 시간(Timestamp) 표시
docker exec-it대화형 쉘(Shell) 접속 시 필수 (-i + -t)
 -u [user]특정 사용자 권한으로 명령어 실행
docker inspect-f특정 정보만 추출 (Go Template 문법)
docker stats 실시간 리소스(CPU, MEM) 사용량 모니터링

undefined

4. 청소 및 시스템 관리 (System)

디스크 용량을 확보할 때 사용

명령어주요 옵션설명
docker system prune-a사용 안 하는 모든 리소스(이미지 포함) 삭제
 -f확인 메시지 없이 즉시 삭제
docker container prune 중지된 컨테이너만 일괄 삭제
docker image prune-a댕글링(이름 없는) 이미지뿐만 아니라 미사용 이미지 전체 삭제

undefined

5. 오케스트레이션 (Docker Compose)

여러 컨테이너를 한 번에 다룬다

명령어주요 옵션설명
docker compose up-d백그라운드 실행
 --build실행 전 이미지 강제 재빌드
docker compose down-v정의된 볼륨 데이터까지 삭제 (주의!)
 --rmi all사용된 이미지까지 모두 삭제
docker compose logs-f전체 서비스 로그 실시간 확인

undefined

6. 네트워크 및 고급 관리 (Advanced)

명령어주요 옵션설명
docker network create--driver네트워크 드라이버 지정 (bridge, overlay 등)
docker network connect 실행 중인 컨테이너에 네트워크 추가 연결
docker save-o [파일]이미지를 파일로 추출 (폐쇄망 이동용)
docker load-i [파일]파일에서 이미지 불러오기
docker commit (비권장) 컨테이너 상태를 이미지로 저장

undefined docker cp [options] container:src_path dest_path

docker commit [커밋할 이름] [설정 이름]

docker [명령어] $([docker 명령어]) 이런식으로도 가능하다

예 ) docker stop $(docker ps -aq)

This post is licensed under CC BY 4.0 by the author.