Docker에서 중지된 컨테이너만 나열
- Docker 허브에서 Nginx 이미지 가져오기
- Docker 이미지 나열
- Nginx 이미지에서 컨테이너 실행
- 실행 중인 컨테이너 나열
- 실행 중인 컨테이너 중지
-
docker ps
명령을 사용하여 중지된 컨테이너 나열 -
docker container ls
명령을 사용하여 중지된 컨테이너 나열 - 결론
Docker는 이미지와 컨테이너를 관리하는 데 사용할 수 있는 유용한 명령을 제공하지만 일부 명령은 명확하지 않습니다. 예를 들어 Docker 명령 docker ps
를 사용하여 실행 중인 컨테이너 목록을 표시하거나 docker 명령 docker ps -a
를 사용하여 중지 또는 실행 중인 모든 컨테이너 목록을 표시할 수 있습니다.
명확하지 않은 기능 중 하나는 중지된 컨테이너 목록만 표시하는 것입니다. 이 튜토리얼에서는 Docker에서 중지된 컨테이너 목록만 표시하는 방법을 알아봅니다.
Docker 허브에서 Nginx 이미지 가져오기
이 튜토리얼에서는 Nginx 이미지를 사용하여 컨테이너를 실행하고 이 컨테이너를 사용하여 이 기사의 목표를 달성합니다.
컴퓨터에서 키보드 단축키 ALT+F12를 사용하여 새 터미널 창을 연 후 다음 명령을 사용하여 docker hub에서 Nginx 이미지를 가져옵니다.
~$ docker pull nginx
태그
를 지정하지 않았으므로 이 명령은 최신 버전의 Nginx를 가져옵니다. 아래와 같이 터미널 창에서 다운로드 세부 정보를 볼 수 있습니다.
Using default tag: latest
latest: Pulling from library/nginx
e9995326b091: Pull complete
71689475aec2: Pull complete
f88a23025338: Pull complete
0df440342e26: Pull complete
eef26ceb3309: Pull complete
8e3ed6a9e43a: Pull complete
Digest: sha256:943c25b4b66b332184d5ba6bb18234273551593016c0e0ae906bab111548239f
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
Docker 이미지 나열
다운로드가 완료되면 모든 이미지를 나열하는 다음 명령을 사용하여 Nginx 이미지가 다운로드되었는지 확인할 수 있습니다.
~$ docker image ls
다른 이미지가 이전에 설치된 경우 이 명령을 사용하여 모두 나열됩니다. 우리의 경우에는 이미지가 다운로드되었는지 확인하기 위해 이 자습서에서 사용된 이미지를 방금 표시했습니다.
이미지 세부 정보는 다음과 같습니다.
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 76c69feac34e 2 days ago 142MB
Nginx 이미지에서 컨테이너 실행
테스트 목적으로 각각 container-one
및 container-two
라는 이름을 가진 두 개의 컨테이너만 실행합니다. 동일한 터미널 창에서 다음 명령을 순차적으로 실행하여 nginx
이미지를 사용하여 두 컨테이너를 실행합니다.
container-one
실행:
~$ docker run --name container-one -d -p 3000:80 nginx
출력:
9e70a29947c373df2abd4748271d252f297c6a06669f7cffb04fe95ee5fca671
container-two
실행:
~$ docker run --name container-two -d -p 5000:80 nginx
출력:
43cd017b94062e47c6c3f868ed74fb5ca7920522e870eceb58115e388e9d43a5
첫 번째 컨테이너는 컨테이너의 포트 80에서 수신 대기하도록 호스트의 포트 3000을 노출하고 두 번째 컨테이너는 이전 컨테이너와 동일한 포트에서 수신 대기하도록 호스트의 포트 5000을 노출합니다.
실행 중인 컨테이너 나열
이전 섹션에서는 container-one
및 container-two
라는 이름으로 두 개의 컨테이너를 실행했습니다. 이러한 컨테이너가 실행 중인지 확인하려면 실행 중인 모든 컨테이너를 나열하는 다음 명령을 사용할 수 있습니다.
~$ docker ps
출력:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
43cd017b9406 nginx "/docker-entrypoint.…" 4 minutes ago Up 4 minutes 0.0.0.0:5000->80/tcp container-two
9e70a29947c3 nginx "/docker-entrypoint.…" 24 minutes ago Up 24 minutes 0.0.0.0:3000->80/tcp container-one
실행 중인 컨테이너 중지
중지된 컨테이너를 나열하기 전에 컨테이너를 중지해야 하며 다음 명령을 사용하여 이름을 사용하여 컨테이너를 중지할 수 있습니다. 여러 컨테이너를 자유롭게 실행하고 중지할 수 있습니다.
~$ docker stop container-one
출력:
container-one
docker ps
명령을 실행하면 container-two
만 실행되고 있음을 알 수 있습니다. 다음 섹션에서는 이 튜토리얼의 주요 목표인 중지된 컨테이너만 나열하는 방법에 대해 알아봅니다.
docker ps
명령을 사용하여 중지된 컨테이너 나열
docker ps
명령에는 조건에 따라 컨테이너를 필터링하도록 지정할 수 있는 --filter
플래그가 있습니다. --filter
플래그의 값은 출력을 제공하는 데 사용될 조건을 예상합니다.
동일한 터미널 창에서 다음 명령을 사용하여 종료
상태의 컨테이너를 필터링합니다.
~$ docker ps --filter "status=exited"
출력:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e70a29947c3 nginx "/docker-entrypoint.…" 48 minutes ago Exited (0) 18 minutes ago container-one
docker container ls
명령을 사용하여 중지된 컨테이너 나열
이 명령의 구문은 이전 예제와 동일합니다. docker container ls
명령에는 조건에 따라 컨테이너를 필터링하도록 지정할 수 있는 --filter
플래그가 있습니다. --filter
플래그가 동일하므로 아래와 같이 exited
상태의 컨테이너를 필터링하는 조건만 제공하면 됩니다.
~$ docker container ls --filter "status=exited"
출력:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e70a29947c3 nginx "/docker-entrypoint.…" 48 minutes ago Exited (0) 18 minutes ago container-one
--filter
플래그는 key-value
쌍의 형태로 제공되어야 하며 필터가 여러 개인 경우 플래그가 여러 개 제공되는지 확인하십시오.
이 자습서에서는 상태
라는 필터를 사용하여 상태를 기반으로 컨테이너를 필터링했습니다. 그러나 도커 문서는 컨테이너를 필터링하는 데 활용할 수 있는 다른 전략을 제공합니다.
결론
이 튜토리얼에서는 Nginx 컨테이너를 활용하여 Docker에서 중지된 컨테이너만 나열하는 방법을 배웠습니다. 이를 수행하기 위해 다루는 두 가지 접근 방식에는 ps
명령을 사용하여 중지된 컨테이너를 나열하는 것과 container ls
명령을 사용하여 중지된 컨테이너를 나열하는 것이 포함됩니다.
두 명령에는 특정 조건에 따라 컨테이너를 필터링하기 위해 키-값 쌍을 허용하는 --filter
플래그가 있습니다.
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub