# 도커 이미지는 어디서 다운받는것인지?
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 |