개발/Docker

#1 Docker CLI

Jinoo.keem 2025. 5. 2. 20:31
728x90

# 도커 이미지는 어디서 다운받는것인지?

https://hub.docker.com/

 

Docker Hub

 

hub.docker.com

깃헙처럼 이미지를 저장, 다운받을 수 있는 저장소 역할을 하는 서비스

 

# 이미지 다운로드

docker pull nginx (아무것도 안붙이면 자동으로 latest버전)

docker pull nginx:latest (뒤에 :땡땡 붙이고 다운받을 버전을 정할 수 있다)

 

# 이미지 다운로드 조회

docker image ls

 

# 이미지 삭제

docker image rm (IMAGE ID <- 일부만 입력해도 삭제된다)

컨테이너에서 사용하고 있지 않은 이미지만 삭제 가능

 

# 이미지 삭제(강제)

docker image rm -f (IMAGE ID)

중단된 컨테이너에서 사용하고 있는 이미지 삭제 가능

 

# 이미지 삭제(여러개 한번에)

docker image rm $(docker images -q) -> 컨테이너에서 사용하고 있지 않은 전체 

docker image rm -f $(docker images -q) -> 중단된 컨테이너에서 사용하고 있지 않은 전체

 

# 컨테이너 생성

docker create nginx (ex: nginx 이미지가 pull 되어있지 않아도 자동으로 다운받고 컨테이너를 생성한다)

 

# 컨테이너 목록

docker ps -a ( 전체 ) 

docker ps ( 실행중인 )

 

# 컨테이너 실행

docker start (CONTAINER ID)

 

# 컨테이너 중단

docker stop (CONTAINER ID) -> 시스템 종료 버튼으로 끄기

docker kill (CONTAINER ID) -> 전원버튼으로 강제종료

 

# 컨테이너 삭제

docker rm (CONTAINER ID) -> 중지되어있는 컨테이너 삭제

docker rm $(docker ps -qa) -> 중지되어있는 모든 컨테이너 삭제

docker rm -f (CONTAINER ID) -> 실행되어있는 컨테이너를 중지+삭제 

 

# docker create + docker start == 컨테이너 생성 + 컨테이너 실행

docker run

docker run 을 하면 foreground 실행이 된다.

docker run -d (image) -> 백그라운드 실행

foreground : 내가 실행시킨 프로그램의 내용이 화면에서 실행되고 출력되는 상태 (다른프로그램 조작 불가능)

background : 내가 실행시킨 프로그램이 컴퓨터 내부적으로 실행되는 상태 (다른프로그램 조작 가능)

 

# 호스트의 포트와 컨테이너의 포트를 연결하기

docker run -d -p (호스트포트):(컨테이너포트) 이미지명(:태그명)

ex) docker run -d -p 4000:80 nginx -> 도커를 실행하는 호스트의 4000번 포트를 컨테이너의 80번 포트로 연결설정

docker run --name webserver -d -p 80:80 nginx -> 컨테이너의 이름과 호스트의 포트 연결 + 백그라운드 실행 

 

# 컨테이너 로그 조회

docker logs (CONTAINER ID)

docker logs --tail 10 (CONTAINER ID) -> 마지막 로그 10줄만

docker logs -f (CONTAINER ID) -> 실시간으로 생성되는 로그를 실시간으로 확인

docker logs --tail 0 -f (CONTAINER ID) -> 지금 시점부터 실시간으로 생성되는 로그를 확인

 

# 실행중인 컨테이너 내부에 접속하는 방법

docker exec -it (CONTAINER ID) bash -> 접속

exit -> 접속 종료


명령어 표로 보기

더보기

📦 Docker 이미지 관련 명령어

명령어 설명  비고/예시
docker pull nginx 이미지 다운로드 태그 미지정 시 latest 자동 다운로드
docker pull nginx:latest 특정 태그 버전 다운로드 예: nginx:1.21
docker image ls 로컬에 있는 이미지 목록 확인 -
docker image rm IMAGE_ID 이미지 삭제 일부 ID만 입력해도 삭제 가능
docker image rm -f IMAGE_ID 이미지 강제 삭제 중단된 컨테이너에서 사용 중인 이미지도 삭제 가능
docker image rm $(docker images -q) 사용하지 않는 모든 이미지 삭제 강제 아님
docker image rm -f $(docker images -q) 사용하지 않는 이미지 전체 강제 삭제 -

📦 Docker 컨테이너 관련 명령어

명령어  설명  비고/예시
docker create nginx 컨테이너 생성 이미지 없으면 자동으로 pull 후 생성
docker ps -a 전체 컨테이너 목록 확인 실행 중 + 중단 포함
docker ps 실행 중인 컨테이너만 보기 -
docker start CONTAINER_ID 컨테이너 시작 -
docker stop CONTAINER_ID 컨테이너 중단 시스템 종료와 유사
docker kill CONTAINER_ID 컨테이너 강제 중단 전원차단처럼 강제종료
docker rm CONTAINER_ID 중지된 컨테이너 삭제 -
docker rm $(docker ps -qa) 중지된 모든 컨테이너 삭제 -
docker rm -f CONTAINER_ID 실행 중인 컨테이너 강제 삭제 중지 후 삭제됨

🚀 컨테이너 실행 관련 명령어

명령어  설명  비고/예시
docker run nginx 컨테이너 생성 + 실행 (foreground) docker create + docker start
docker run -d nginx 백그라운드 실행 화면 출력 없이 실행
docker run -d -p 4000:80 nginx 포트 연결하여 실행 호스트: 4000, 컨테이너: 80
docker run --name webserver -d -p 80:80 nginx 이름 지정 + 포트 연결 + 백그라운드 실행 컨테이너 이름 지정 가능

📋 컨테이너 로그 명령어

명령어  설명  비고/예시
docker logs CONTAINER_ID 전체 로그 출력 -
docker logs --tail 10 CONTAINER_ID 마지막 10줄만 출력 최근 로그 확인용
docker logs -f CONTAINER_ID 실시간 로그 출력 스트리밍 로그 확인
docker logs --tail 0 -f CONTAINER_ID 지금 시점부터 실시간 로그 확인 과거 로그 제외하고 현재부터만 보기

🔧 컨테이너 내부 접속

명령어  설명  비고/예시
docker exec -it CONTAINER_ID bash 컨테이너 내부 bash 셸 접속 sh 명령어만 있는 이미지도 있음
exit 컨테이너 셸 종료 접속 종료

 

'개발 > Docker' 카테고리의 다른 글

#5 Docker 환경에서 Spring Boot 백엔드 실행  (2) 2025.05.05
#4 Docker Compose  (0) 2025.05.04
#3 Dockerfile  (1) 2025.05.04
#2 Docker Volume  (0) 2025.05.03
#0 Docker  (0) 2025.05.02