Docker

[Docker] Docker 명령어 정리

배씌 2025. 9. 23. 16:56

💾 Image 관련

이미지 다운로드

이미지 다운로드 시 Dockerhub이라는 곳에서 이미지를 다운 받음.

 

[최신 버전(latest) 이미지 다운로드]

# docker pull 이미지명
$ docker pull nginx # docker pull nginx:latest와 동일하게 작동

 

[특정 버전 이미지 다운로드]

# docker pull 이미지명:태그명
$ docker pull nginx:stable-perl

 다운 받은 모든 이미지 조회

$ docker image ls

이미지 삭제

[특정 이미지 삭제]

$ docker image rm [이미지 ID 또는 이미지명]

 

[이미지 강제 삭제]

$ docker image rm -f [이미지 ID 또는 이미지명]

 

[전체 이미지 삭제]

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

# 컨테이너에서 사용하고 있는 이미지를 포함해서 전체 이미지 삭제
$ docker image rm -f $(docker images -q)

📦 컨테이너(Container) 관련

✅ 컨테이너 생성

이미지를 바탕으로 컨테이너를 생성한다. 생성만 하고 실행은 X -> (그래서 잘 사용하지 않는 명령어)

# docker create 이미지명[:태그명]
$ docker create nginx

$ docker ps -a # 모든 컨테이너 조회

 컨테이너 실행

$ docker start 컨테이너명[또는 컨테이너 ID]

$ docker ps # 실행중인 컨테이너 조회

# Nginx 컨테이너 중단 후 삭제하기
$ docker ps # 실행 중인 컨테이너 조회
$ docker stop {nginx를 실행시킨 Contnainer ID} # 컨테이너 중단
$ docker rm {nginx를 실행시킨 Contnainer ID} # 컨테이너 삭제
$ docker image rm nginx # Nginx 이미지 삭제

 컨테이너 생성 + 실행

이미지를 바탕으로 컨테이너를 생성 + 실행 

# docker run 이미지명[:태그명]
$ docker run nginx # 포그라운드에서 실행 (추가적인 명령어 조작을 할 수가 없음)

 

[컨테이너 백그라운드 실행]

# docker run -d 이미지명[:태그명]
$ docker run -d nginx

 

[컨테이너 이름 붙이기]

# docker run -d --name [컨테이너 이름] 이미지명[:태그명]
$ docker run -d --name my-web-server nginx

 

[호스트 포트 - 컨테이너 포트 매핑] - (중요 !)

# docker run -d -p [호스트 포트]:[컨테이너 포트] 이미지명[:태그명]
$ docker run -d -p 4000:80 nginx

 

외부에서 접근하기 위해서는 호스트 포트와 컨테이너 포트 번호를 매핑해주어야 외부에서 접근이 가능하다.


 컨테이너 조회

[실행중인 컨테이너 조회]

$ docker ps

 

[모든 컨테이너 조회]

$ docker ps -a

 컨테이너 중지

$ docker stop 컨테이너명[또는 컨테이너 ID]
$ docker kill 컨테이너명[또는 컨테이너 ID]

 컨테이너 삭제

[컨테이너 단일 삭제]

$ docker rm 컨테이너명[또는 컨테이너 ID]
$ docker rm -f 컨테이너명[또는 컨테이너 ID] // 강제 삭제

 

[컨테이너 여러개 삭제]

$ docker rm $(docker ps -qa)
$ docker rm -f $(docker ps -qa) // 강제 삭제

 컨테이너 로그 조회

[특정 컨테이너의 모든 로그 조회]

# docker logs [컨테이너 ID 또는 컨테이너명]

$ docker run -d nginx
$ docker logs [nginx가 실행되고 있는 컨테이너 ID]

 

[특정 컨테이너의 최근 10개 로그 조회]

# dokcer logs --tail [로그 끝부터 표시할 줄 수] [컨테이너 ID 또는 컨테이너명]
$ dokcer logs --tail 10 [컨테이너 ID 또는 컨테이너명]

 

[기존 로그 조회 + 생성되는 로그를 실시간으로 보고 싶은 경우]

# docker logs -f [컨테이너 ID 또는 컨테이너명]

# Nginx의 컨테이너에 실시간으로 쌓이는 로그 확인하기
$ docker run -d -p 80:80 nginx
$ docker logs -f

 실행 중인 컨테이너 내부 접속

# docker exec -it 컨테이너명[또는 컨테이너 ID] bash

$ docker run -d nginx
$ docker exec -it [Nginx가 실행되고 있는 컨테이너 ID] bash