개요
이번 포스팅에서는 그동안 알아보지 않고 무작정 썼던 명령어들을 조금 자세히 알아보려 한다.
컨테이너와 이미지 생성, 삭제 등 이미 모두 해보았지만,
명령어의 각 옵션이 무엇을 의미하는지 알아보자.
컨테이너 조회하기
컨테이너를 조회하기 위해서 기본적으로 다음 명령어를 사용했었다.
docker ps
여기서 중요하게 알아야 할 것이 있다.
위 명령어는 모든 컨테이너를 조회하는 것이 아니라,
'실행중인 컨테이너'를 조회하는 명령어이다.
아래 명령어는 위 명령어와 뭐가 다를까?
docker ps -a
여기서 `-a` 옵션을 붙였는데, 'all'의 약자라고 생각하면 된다.
실행중인 컨테이너, 중지된 컨테이너 '모두' 포함해서 조회하는 명령어이다.
STATUS를 보면 'Exited'라고 되어있는데,
중단된 컨테이너를 의미한다.
컨테이너 실행하기
이제 중단된 컨테이너를 실행해보자.
docker run -d nginx
여기서 `-d`는 'detached'의 약자라고 생각하면 된다.
'detached'는 '분리된' 이라는 의미를 가지고 있으며,
foreground가 아닌, background에서 실행해준다.
실행중인 컨테이너를 조회하는 명령어로 확인해보면,
중단된 상태였던 컨테이너가 잘 보이는 것을 확인할 수 있다.
컨테이너 중지하기
컨테이너를 중지하기 위해서는 다음 명령어를 사용했었다.
docker stop [CONTAINER ID]
이 때, CONTAINER ID는 다른 컨테이너와 구분이 가는 정도에서 일부만 입력해도 된다.
물론, NAMES를 지정해줬을 경우에는 컨테이너 이름을 입력해줘도 된다.
그런데, 만약 컨테이너가 멈추지 않거나, 응답이 없다면 어떻게할까?
우리가 컴퓨터를 전원 버튼을 꾹 눌러서 강제종료 하듯이,
컨테이너도 다음 명령어로 강제종료 할 수 있다.
docker kill [CONTAINER ID]
하지만 위 방법은 데이터가 손실되거나 비정상으로 종료될 위험이 있다.
그러므로, 최후의 수단으로 사용해야 한다.
일반적으로는 `docker stop`으로 안전하게 종료하고,
컨테이너가 멈추지 않거나, 응답이 완전히 없을 때만 `docker kill`을 사용하는게 좋다.
컨테이너 삭제하기
컨테이너를 삭제할 땐 다음 명령어를 사용했다.
docker rm [CONTAINER ID]
이렇게 중간에 공백을 두어서 여러 컨테이너를 한 번에 지울 수도 있다.
하지만, 컨테이너는 실행 중에 지울 수 없다.
테스트를 위해 컨테이너를 실행해서 다시 지워보자.
그러면 에러가 발생하는데,
에러메시지를 보면 컨테이너를 지우기 전에 컨테이너를 중지하라고 나온다.
컨테이너를 중지하고 삭제해보자.
위와 같이 잘 삭제가 된 것을 볼 수 있다.
만약 여러개의 컨테이너를 한 번에 지우고 싶다면 어떻게 할까?
다음과 같이 여러 컨테이너가 있다고 해보자.
물론 중간에 공백을 두고 CONTAINER ID를 모두 입력할 수 있다.
하지만, 컨테이너가 많아질수록 힘들어진다.
그럴땐 다음 명령어로 한 번에 지울 수 있다.
docker rm $(docker ps -qa)
여기서 `docker ps -qa`는 현재 호스트에 저장된 모든 컨테이너의 ID를 호출한다.
`-q` 옵션은 'quiet'로, ID만 추출하고,
`-a` 옵션은 'all'로, 실행 중이든 중지 상태든 모든 컨테이너를 포함한다.
마지막으로, 실행 중이던 컨테이너를 바로 삭제하는 법은 다음과 같다.
docker rm -f [CONTAINER ID]
여기서 `-f`는 'force'의 약자로, '강제로' 한다는 의미이다.
'Docker' 카테고리의 다른 글
실행중인 컨테이너 내부에 접속하기 (2) | 2025.07.31 |
---|---|
컨테이너 로그 조회하기 (1) | 2025.07.31 |
컨테이너 생성 / 실행하기 (2) | 2025.07.31 |
도커 이미지 조회 / 삭제하기 (0) | 2025.07.31 |