본문 바로가기
시스템(Linux)

Docker 필수 명령어 15가지 정리 (옵션·예시 포함)

by forward error correction Circle 2024. 10. 4.
반응형

 Ⅰ. docker 자주 쓰는 명령어

명령어 설명 사용법
docker pull Docker Hub 또는 다른 레지스트리에서 이미지를 다운로드 docker pull <image-name>
예) docker pull nginx:1.27-alpine
docker images 로컬에 저장된 이미지 목록 확인 docker images
docker rmi 특정 이미지 삭제 docker rmi <image-id>
강제 삭제: docker rmi -f <image-id>
docker build Dockerfile로 이미지 빌드 docker build -t <name>:<tag> .
docker tag 이미지에 새 태그 부여(레지스트리 push 전 단계) docker tag myapp:1.0 myreg/myapp:1.0
docker push 이미지를 레지스트리에 업로드 docker push myreg/myapp:1.0

 

ⅰ. docker 이미지 다운로드

명령어 설명 사용 방법
docker pull Docker Hub 또는 다른 레지스트리에서 이미지를 다운로드합니다. docker pull <image-name>

1) Docker Hub 이미지 다운로드

https://hub.docker.com/

 

Docker Hub Container Image Library | App Containerization

Increase your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more.

hub.docker.com

 

2) AWS 이미지 다운로드

https://gallery.ecr.aws/

 

ECR Public Gallery

Amazon ECR Public Gallery is a website that allows anyone to browse and search for public container images, view developer-provided details, and see pull commands

gallery.ecr.aws

ⅱ. docker 이미지 목록 확인

명령어 설명 사용 방법
docker images 로컬에 저장된 이미지 목록을 확인합니다. docker images

ⅲ. docker 이미지 삭제

명령어 설명 사용 방법
docker rmi 특정 이미지를 삭제합니다. docker rmi <image-name>
docker rmi <image-id> 

ⅳ. docker 컨테이너 상태 확인

명령어 설명 사용 방법
docker ps -a 모든 컨테이너(실행 중이지 않은 것 포함)의 목록을 확인합니다. docker ps -a

 

명령어 설명 사용 방법
docker ps 현재 실행 중인 컨테이너 목록을 확인합니다. docker ps

ⅴ. docker 컨테이너 생성 및 실행

명령어 설명 사용 방법
docker run 새로운 컨테이너를 생성하고 실행합니다. docker run <options> <image-name>
Ex) docker run -d -p 80:80 nginx

옵션명 설명
-d  컨테이너를 백그라운드에서 실행.
-p 호스트와 컨테이너 간 포트 매핑. 형식은 호스트포트:컨테이너포트입니다.
--name 컨테이너 이름 지정
-v 볼륨을 마운트하여 호스트 디렉토리를 컨테이너 내부에 연결
-e
환경 변수를 설정하여 컨테이너 내부에서 사용할 값을 전달
-i (interactive) 입력을 활성화해서 사용자의 입력을 컨테이너에 전달
-t (tty) 터미널 환경을 할당해서 사용자가 출력 결과를 보기 쉽게 포맷

 

ⅵ. docker 컨테이너 연결 및 관리

 

※ docker attach에서 연결을 끊으면, 연결된 프로세스가 종료되거나 컨테이너도 함께 종료될 수 있습니다. 이를 방지하기 위해서는 docker run -d로 띄운 컨테이너에 접속할 때 attach 대신 exec -it을 쓰는 것이 권장됩니다.

구분 docker exec docker attach
성격 새로운 프로세스 실행 기존 실행 중인 프로세스에 연결
PID (프로세스 ID) 새로운 PID 할당 PID 1 (메인 프로세스)에 연결
안전성 높음 (빠져나와도 컨테이너 유지) 낮음 (잘못 종료 시 컨테이너 중지)
활용 예시 컨테이너 내부 파일 수정, 패키지 설치 실행 중인 서버의 실시간 로그 확인

 

1) docker attach

명령어 설명 사용 방법
docker attach 실행 중인 컨테이너의 터미널에 연결되어 컨테이너 내에서 명령어를 실행합니다. docker attach <container-id>

 

* 실행 중인 컨테이너를 접속할 수 있습니다.

   (Ctrl + p) 누른 후 (Ctrl+q) 컨테이너를 빠져 나올 수 있습니다.

2) docker exec

명령어 설명 사용 방법
docker exec 실행 중인 컨테이너에서 명령어를 실행합니다. docker exec -it <container-id> <command>
Ex) docker exec <container-id> /bin/bash

 

ⅶ. docker 컨테이너 실행 관리

명령어 설명 사용 방법
docker stop 실행 중인 컨테이너를 중지합니다. docker stop <container-id>
docker start 중지된 컨테이너를 다시 시작합니다. docker start <container-id>
docker restart 컨테이너를 중지한 후 다시 시작합니다. docker restart <container-id>

 

ⅷ. docker 컨테이너 삭제

명령어 설명 사용 방법
docker rm 특정 컨테이너를 삭제합니다. 서비스 종료된 컨테이너 삭제
docker rm <container-id>
서비스 실행 중인 컨테이너 강제 삭제
docker rm -f <container-id>

 

 

ⅸ. docker 컨테이너 로그 확인

docker logs 컨테이너의 로그를 확인합니다. docker logs <container-id>

 

Ⅱ. docker 디스크 및 네트워크 관리

ⅰ. docker 볼륨이란?

컨테이너는 기본적으로 휘발성이라 삭제되면 내부 데이터도 함께 사라집니다. 볼륨은 컨테이너와 분리된 저장 공간을 제공해 데이터를 영구적으로 보관할 수 있게 해주며, 여러 컨테이너 간 데이터 공유에도 사용됩니다.

 

ⅱ. docker 볼륨 주요 명령어

명령어 설명 사용 방법
docker volume ls 생성된 볼륨 목록을 확인합니다. docker volume ls
docker volume create 새로운 볼륨을 생성합니다. docker volume create <volume-name>
docker volume inspect 볼륨의 상세 정보(마운트 경로, 드라이버 등)를 확인합니다. docker volume inspect <volume-name>
docker volume rm 특정 볼륨을 삭제합니다. docker volume rm <volume-name>
docker volume prune 사용하지 않는(미연결) 볼륨을 일괄 삭제합니다. docker volume prune

ⅲ. docker 볼륨 마운트 종류

종류 설명 예시
Volume Docker가 관리하는 영역(/var/lib/docker/volumes)에 저장. 권장 방식. -v myvol:/data
Bind Mount 호스트의 특정 경로를 직접 컨테이너에 연결. -v /home/user/data:/data
tmpfs 메모리에만 저장(컨테이너 종료 시 삭제). --tmpfs /data

ⅳ. docker 네트워크란?

 Docker는 컨테이너 간 통신을 위해 가상 네트워크를 제공합니다. 같은 네트워크에 속한 컨테이너끼리는 컨테이너 이름을 호스트명처럼 사용해 서로 통신할 수 있습니다.

 

ⅴ. docker 네트워크 주요 명령어

명령어 설명 사용 방법
docker network ls 네트워크 목록을 확인합니다. docker network ls
docker network create 새로운 네트워크를 생성합니다. docker network create <network-name>
docker network inspect 네트워크 상세 정보(연결된 컨테이너, 서브넷 등)를 확인합니다. docker network inspect <network-name>
docker network connect 실행 중인 컨테이너를 네트워크에 연결합니다. docker network connect <network-name> <container-id>
docker network disconnect 컨테이너를 네트워크에서 분리합니다. docker network disconnect <network-name> <container-id>
docker network rm 네트워크를 삭제합니다. docker network rm <network-name>
docker network prune 사용하지 않는 네트워크를 일괄 삭제합니다. docker network prune

ⅵ. docker 네트워크 드라이버 종류

드라이버 설명 사용 시나리오
bridge 기본값. 단일 호스트 내 컨테이너 간 통신용 가상 네트워크. 로컬 개발, 단일 서버 환경
host 호스트의 네트워크를 그대로 사용(포트 매핑 불필요). 네트워크 성능이 중요한 경우
none 네트워크 비활성화. 외부와 격리된 컨테이너. 보안이 필요한 작업
overlay 여러 Docker 호스트(Swarm)에 걸친 컨테이너 간 통신. 클러스터, 분산 환경
macvlan 컨테이너에 MAC 주소를 부여해 물리 네트워크에 직접 연결. 레거시 네트워크 통합
반응형