
안녕하세요! 지난 포스팅에서는 Dockerfile을 이용해 이미지를 만들고 컨테이너를 실행해봤습니다. 오늘은 한 걸음 더 나아가, 도커를 더욱 효율적으로 다루기 위한 이미지와 컨테이너 관리 방법을 총정리해 드릴게요. 이미 만든 컨테이너를 멈추고 재시작하거나, 더 이상 필요 없는 것들을 깔끔하게 삭제하는 방법까지 함께 알아봅시다!
1. 도커 명령어의 모든 것을 알고 싶다면? --help
도커를 사용하면서 수많은 명령어를 접하게 될 텐데요, 각 명령어의 정확한 사용법이 궁금할 때는 --help 옵션을 사용하면 됩니다.
예를 들어, docker 명령어 자체에 어떤 옵션이 있는지 알고 싶다면:
docker --help
ps 명령어에 어떤 옵션이 있는지 알고 싶다면:
docker ps --help
이 옵션을 사용하면 해당 명령어와 함께 쓸 수 있는 모든 옵션(flags)과 설명을 볼 수 있습니다. 모든 옵션을 다 알 필요는 없지만, 필요할 때마다 참고하면 도커를 훨씬 능숙하게 다룰 수 있습니다.
2. 컨테이너 관리: 멈추고, 다시 시작하고, 삭제하기
1) 실행 중인 컨테이너 목록 확인하기: docker ps
docker ps 명령어는 현재 실행 중인 컨테이너 목록을 보여줍니다.
docker ps
만약 과거에 멈췄거나 이미 종료된 컨테이너까지 모두 보고 싶다면, -a 옵션을 추가합니다.
docker ps -a
이 명령어를 사용하면 이전에 우리가 docker stop으로 멈췄던 컨테이너들도 모두 확인할 수 있습니다.
2) 컨테이너 다시 시작하기: docker start
애플리케이션의 코드가 변경되지 않았고, 단순히 멈춰있던 컨테이너를 다시 시작하고 싶을 때는 docker run을 사용하지 않는 것이 좋습니다. docker run은 새로운 컨테이너를 만드는 명령어이기 때문이죠.
이럴 때는 docker ps -a로 컨테이너 ID나 이름을 확인한 후, docker start 명령어로 멈춰있던 컨테이너를 다시 시작할 수 있습니다.
docker start [컨테이너 ID 또는 이름]
docker start는 docker run과 달리 터미널을 막지 않고 백그라운드에서 컨테이너를 실행합니다.
3) 컨테이너 완전 삭제하기: docker rm
더 이상 필요 없는 컨테이너는 삭제해서 시스템 자원을 확보하는 것이 좋습니다. 컨테이너를 삭제하는 명령어는 docker rm 입니다. 컨테이너는 실행 중인 상태에서는 삭제할 수 없으므로, 먼저 docker stop으로 컨테이너를 멈춘 뒤 삭제해야 합니다.
# 먼저 컨테이너를 멈춥니다.
docker stop [컨테이너 ID 또는 이름]
# 그 다음 삭제합니다.
docker rm [컨테이너 ID 또는 이름]
3. 이미지 관리: 태그 지정, 목록 확인, 삭제하기
1) 이미지에 이름(태그) 붙이기: docker build -t
우리가 이전에 docker build . 명령어로 이미지를 만들었을 때, 이미지 이름(REPOSITORY)이 <none>으로 표시되었던 것을 기억하시나요? 이미지에 이름을 붙여주면 관리하기가 훨씬 편리해집니다.
이미지를 빌드할 때 -t (tag) 옵션을 사용해 이름을 지정할 수 있습니다.
docker build -t [이미지 이름:태그] .
# 예시: docker build -t my-nodejs-app:1.0 .
my-nodejs-app은 이미지 이름, 1.0은 태그(버전)입니다. 이렇게 이름을 지정하면 나중에 docker run my-nodejs-app:1.0처럼 이미지 ID 대신 이름을 사용해 컨테이너를 실행할 수 있습니다.
2) 이미지 목록 확인하기: docker images
docker images 명령어는 로컬 시스템에 저장된 모든 이미지 목록을 보여줍니다.
docker images
3) 이미지 완전 삭제하기: docker rmi
더 이상 필요 없는 이미지는 docker rmi 명령어로 삭제할 수 있습니다.
docker rmi [이미지 ID 또는 이름]
주의사항: 이미지를 바탕으로 실행 중인 컨테이너가 있다면 이미지를 삭제할 수 없습니다. 먼저 컨테이너를 멈추고 삭제한 뒤, 이미지를 삭제해야 합니다.
이번 포스팅에서는 도커를 더 효율적으로 관리하는 방법에 대해 알아보았습니다. 다양한 명령어를 활용하여 이미지를 빌드하고, 컨테이너를 실행하고 멈추고 삭제하는 과정을 직접 연습해보는 것이 중요합니다. 다음 포스팅에서는 **도커 볼륨(Docker Volume)**과 같은 도커의 고급 기능들을 다뤄볼게요.
궁금한 점이 있다면 언제든 댓글로 남겨주세요! 😊
'DevOps' 카테고리의 다른 글
| [Docker 7] docker image inspect로 이미지 심층 분석하기 (0) | 2025.08.24 |
|---|---|
| [Docker 6편] 컨테이너의 다양한 모드와 상호작용하기 🐳 (1) | 2025.08.19 |
| [Docker 4편] 🐳 도커, 넌 대체 어떻게 빌드되는 거야? 이미지 레이어! (2) | 2025.08.18 |
| [Docker 3편] DockerFile로 도커 이미지 만들고 컨테이너 실행하기 (2) | 2025.08.17 |
| [Docker 2편] Dockerfile 작성해보기 (2) | 2025.08.16 |