Docker를 실제로 사용하기 위해 기본적으로 사용되는 커맨드를 익혀보자
먼저 컨테이너를 만들기 위해서는 이미지(image)가 필요하다.
image가 뭐지?

이미지(Image)는 프로그램을 실행하는 데 필요한 설치 과정, 설정, 버전 정보 등을 포함하고 있다. 즉, 프로그램을 실행하는 데 필요한 모든 것을 포함하고 있다.
간단하게 비유하자면
이미지는 건물을 만들기 위한 설계도, 컨테이너는 설계도를 바탕으로 지은 실제 건물이라고 할 수 있다.
따라서 이미지를 바탕으로 여러개의 컨테이너를 만들 수 도 있고, 컨테이너 안에 내용을 추가하거나 삭제하여도 이미지는 그대로 존재한다.
그러면 이미지는 어디있지?
https://hub.docker.com/_/docker
docker - Official Image | Docker Hub
Docker Official Images are a curated set of Docker open source and drop-in solution repositories. Why Official Images? These images have clear documentation, promote best practices, and are designed for the most common use cases.
hub.docker.com
Docker 이미지들을 올리고 받을 수 있는 "이미지 저장소(Registry)"
Docker Hub에서 사람들이 올려놓은 이미지를 가지고 내 호스트 컴퓨터에 컨테이너를 만들 수 있다!
실제로 해보자
# docker pull 이미지명
$ docker pull nginx # docker pull nginx:latest와 동일하게 작동
1. Docker Hub에서 원하는 이미지를 찾고 이미지 다운받기(nginx로 연습)
이미지 명 뒤에 버전을 입력하지 않으면 자동으로 최신 버전으로 다운받아진다.

Docker.desktop의 images에 들어가보면 잘 다운받아진 모습
docker image ls # 이걸로도 다운받은 이미지 리스트 출력 가능
2. 다운받은 이미지로 컨테이너를 만들어보자
# docker create 이미지명[:태그명]
$ docker create nginx
$ docker ps -a # 모든 컨테이너 조회

잘 생성된 것을 확인할 수 있다.
하지만 아직 생성만 하고 실행은 하지 않았기에 이름 앞에 동그라미에 불이 들어오지 않은 모습
docker start a272 # 컨테이너 ID의 앞에 몇글자만 넣어도 실행 가능!

start를 통해 제대로 컨테이너가 실행되었다.
그런데 이미지 다운, 컨테이너 생성하고 실행하기 너무 귀찮다....
한번에 할 수 있는 방법이 없을까?
docker run -d nginx # 이미지 다운(pull), 컨테이너 생성(create), 컨테이너 실행(start) 한번에 하기
run 명령어를 통해서 한번에 해결가능하다.
주의 할 점은 run 명령어는 포그라운드 모드로 실행되기 때문에 백그라운드에서 실행하라는 명령어인 -d를 추가해줘야한다.
포그라운드로 실행하면 터미널을 사용하지 못하기 때문에 백그라운드로 실행하자.
3. 실행중인 컨테이너 내부에 들어가보자
docker exec -it a272 bash # 컨테이너 ID
ls # 컨테이너 내부 파일 조회
cd /etc/nginx # 디렉토리 변경
cat nginx.conf # 파일 출력
exit # 나오기

컨테이너 안으로 들어가 내부 파일을 조회하거나 출력할 수 있다.
추가적인 커맨드
# ========================
# Docker 컨테이너 관련 명령어
# ========================
docker ps # 실행중인 컨테이너 조회 (running 상태만)
docker ps -a # 모든 컨테이너 조회 (running + stopped)
docker rm [컨테이너ID] # 특정 컨테이너 삭제 (중지된 것만 삭제 가능)
docker rm $(docker ps -a -q) # 모든 컨테이너 삭제 (중지된 컨테이너 전부)
docker rm -f $(docker ps -a -q) # 모든 컨테이너 강제 삭제 (실행중 + 중지 포함)
# ========================
# Docker 이미지 관련 명령어
# ========================
docker images # 로컬 이미지 목록 조회
docker rm image [이미지ID] # 특정 이미지 삭제
docker rm image $(docker images -q) # 모든 이미지 삭제
docker rm image -f $(docker images -q) # 모든 이미지 강제 삭제 (사용중이어도 삭제)
# ========================
# Docker run 명령어 관련 (컨테이너 실행)
# ========================
docker run -p 4000:80 nginx # 호스트의 8080 포트 → 컨테이너 80포트 연결
중간중간 이미지나 컨테이너를 조회하고 삭제하는데 사용되는 명령어들이다.

마지막에 있는 Docker run에서 포트를 설정하게 되면 위 그림과 같이 호스트의 4000번 포트를 컨테이너의 80번 포트로 연결하도록 설정한다.
'[Docker]' 카테고리의 다른 글
| [Docker] Docker의 기본 개념 (0) | 2025.04.13 |
|---|