Docker의 --rm 플래그
일반적으로 대부분의 개발자가 도커를 사용하기 시작할 때 이미지를 끌어오고, 이미지를 빌드하고, 컨테이너를 실행하는 모든 프로세스를 거친 후 컨테이너를 제거하는 것은 원래 목적을 상실합니다. 그러나 숙련된 개발자에게는 애플리케이션을 개발하고 최대한 효율적으로 만드는 데 도움이 되는 이점이 있습니다.
이 튜토리얼에서는 docker에서 rm
명령을 사용하는 방법에 대해 설명합니다. 또한 이 명령을 사용할 때의 장점도 배우게 됩니다.
Nginx 이미지 가져오기
이 튜토리얼에서는 Nginx 이미지를 사용합니다. Docker 허브의 모든 이미지를 사용할 수도 있습니다.
따라서 새 터미널(단축키 Ctrl+Alt+T)을 열고 아래 명령을 사용하여 이미지를 가져옵니다.
~$ docker pull nginx:alpine
출력:
alpine: Pulling from library/nginx
ca7dd9ec2225: Already exists
76a48b0f5898: Pull complete
2f12a0e7c01d: Pull complete
1a7b9b9bbef6: Pull complete
b704883c57af: Pull complete
4342b1ab302e: Pull complete
Digest: sha256:455c39afebd4d98ef26dd70284aa86e6810b0485af5f4f222b19b89758cabf1e
Status: Downloaded newer image for nginx:alpine
docker.io/library/nginx:alpine
이미지에서 컨테이너 실행
이미지가 다운로드되면 아래 명령을 사용하여 temp-container
라는 이름의 컨테이너를 실행합니다.
~$ docker run --rm --name temp-container -w /com/app/ nginx:alpine pwd
출력:
/com/app
docker run
명령에서 컨테이너가 종료될 때 자동으로 제거하는 --rm
플래그를 사용했습니다. 또한 -w
플래그를 사용하여 컨테이너에서 작업 디렉토리를 설정했습니다.
또한 컨테이너의 작업 디렉토리는 pwd
명령을 사용하여 인쇄되었습니다. 일반적으로 이 명령은 컨테이너를 실행하고 컨테이너의 작업 디렉터리를 설정하며 작업 디렉터리를 인쇄한 후 --rm
플래그로 컨테이너를 제거합니다.
이 컨테이너를 실행하는 주요 목적은 작업 디렉터리가 성공적으로 설정되었는지 여부를 테스트하는 것이므로 호스트에 컨테이너가 있을 필요가 없으므로 컨테이너가 삭제됩니다.
이것은 --rm
플래그의 사용 사례 중 하나입니다. 이 명령을 사용하면 사용하지 않는 컨테이너에서 사용하는 컴퓨터 스토리지를 절약할 수 있다는 이점이 있습니다.
이 명령이 제거되었는지 확인하려면 아래 명령을 사용하여 컨테이너가 있는지 확인하십시오.
~$ docker ps -a
출력:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
컨테이너에 실행 중인 다른 컨테이너가 있는 경우 위 명령을 사용하여 모두 나열됩니다. 그러나 다른 컨테이너가 없으면 콘솔에 아무것도 나열되지 않습니다.
마지막으로 --rm
플래그 사용의 또 다른 장점은 정리 및 개념 증명을 자동으로 수행하는 데 도움이 된다는 것입니다.
결론
수명이 짧은 컨테이너, 특히 테스트 목적으로 사용되는 컨테이너에만 이 명령을 사용하십시오. 결론적으로 이 기사에서는 --rm
플래그를 사용하는 방법과 이 명령을 사용하여 컨테이너를 실행하는 이유를 설명했습니다.
마지막으로 이 명령을 사용하여 얻을 수 있는 몇 가지 이점을 배웠습니다.
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