source

'--rm' 플래그는 무엇을 하고 있습니까?

ittop 2023. 9. 4. 20:40
반응형

'--rm' 플래그는 무엇을 하고 있습니까?

저는 도커를 처음 시도하고 있으며 아직 "멘탈 모델"이 없습니다.완전 초보자.

제가 보고 있는 모든 예는 다음을 포함합니다.--rm실행할 플래그(예:

docker run -it --rm ...
docker container run -it --rm ...

질문:.

이 명령에 다음이 포함되는 이유는 무엇입니까?--rm플래그? 만약 내가 좋은 것들이 들어있는 컨테이너를 설치하거나 다운로드하는 수고를 한다면, 왜 그것을 제거해야 한다고 생각합니다.저는 그것을 다시 사용하기 위해 보관하고 싶습니다.

그래서 도커에 대한 잘못된 생각을 가지고 있다는 것을 압니다.

컨테이너는 컨테이너를 실행하는 데 사용하는 이미지의 인스턴스에 불과합니다.컨테이너형 앱을 만들 때의 정신 상태는 예를 들어 신선하고 깨끗한 Ubuntu 컨테이너를 가져와서 원하는 앱과 구성을 다운로드한 다음 실행되도록 두는 것이 아닙니다.

컨테이너를 응용프로그램의 인스턴스로 처리해야 하지만 응용프로그램이 이미지에 포함되어 있습니다.올바른 사용법은 모든 파일, 구성, 환경 변수 등을 이미지에 포함하는 사용자 지정 이미지를 만드는 것입니다.Docker 파일에 대한 자세한 내용과 파일 처리 방법은 여기에서 확인하십시오.

이렇게 하면 모든 것이 포함된 이미지가 생성되고 응용 프로그램을 사용하려면 다음을 사용하여 적절한 포트 설정이나 다른 동적 변수로 이미지를 실행합니다.docker run <your-image>

컨테이너 실행 중--rm플래그는 컨테이너 내에서 응용 프로그램을 컴파일하거나 작동하는 것을 테스트하는 등의 작업을 수행하는 동안 매우 짧은 시간 동안 사용하는 컨테이너에 좋습니다. 그러면 사용자는 이 컨테이너가 수명이 짧다는 것을 알고 실행이 끝나면 도커 데몬에게 다음과 같이 말합니다.관련된 모든 항목을 지우고 디스크 공간을 절약합니다.

깃발--rm작업이 완료된 후 컨테이너를 삭제해야 할 경우 사용됩니다.

이는 소규모 테스트 또는 POC 용도에 적합하며 집안일을 위해 두통을 덜어줍니다.

출처: https://docs.docker.com/engine/reference/run/ #cleanup---rm

기본적으로 컨테이너의 파일 시스템은 컨테이너가 종료된 후에도 유지됩니다.이렇게 하면 최종 상태를 검사할 수 있으므로 디버깅이 훨씬 쉬워지고 기본적으로 모든 데이터를 유지할 수 있습니다.그러나 단기 포그라운드 프로세스를 실행하는 경우 이러한 컨테이너 파일 시스템이 실제로 쌓일 수 있습니다.대신 Docker가 컨테이너를 자동으로 정리하고 컨테이너가 종료될 때 파일 시스템을 제거하도록 하려면 다음을 추가할 수 있습니다.--rm

즉, 중지되거나 사용되지 않는 컨테이너로부터 호스트를 깨끗하게 유지하는 것이 유용합니다.

)와 같은 할 때docker run -it ubuntu은 다을사용컨부에착다니합너테이를 사용하여 합니다.docker attach container-name( (으)로 사용exec다른 세션에 대해).

컨테이너 안에서 작업을 하고 있을 때 다음과 같이 입력합니다.exit또는ctrl+z또는 용기 밖으로 나올 수 있는 다른 방법.ctrl+p+q컨테이너가 꺼집니다.즉, 컨테이너가 중지되었지만 디스크에서 사용할 수 있으며 다음을 사용하여 컨테이너를 다시 시작할 수 있습니다.docker start container-name/ID그러나 컨테이너를 실행할 때—rm태그, 종료 시 컨테이너가 영구적으로 삭제됩니다.

사용합니다--rm실행 중인 컨테이너에 연결하여 데이터베이스 백업 또는 파일 복사와 같은 일부 작업을 수행하는 경우다음은 예입니다.

docker run -v $(pwd):/mnt --link app_postgres_1:pg --rm postgres:9.5 pg_dump -U postgres -h pg -f /mnt/docker_pg.dump1 app_db

위에서 'app_postgres_1'이라는 실행 중인 컨테이너를 연결하고 백업을 생성합니다.백업 명령이 완료되면 컨테이너가 완전히 삭제됩니다.

"docker run rm" 명령을 사용하면 새 컨테이너를 실행할 수 있으며 나중에 작업이 완료되면 디스크 공간을 절약하여 삭제됩니다.

중요한 점은 컨테이너가 데이터 스토리지용이 아닌 클래스 인스턴스와 같다는 점입니다.작업이 완료되면 삭제하는 것이 좋습니다.우리가 다시 시작하면, 그것은 신선하게 시작됩니다.

그러면 문제가 발생합니다. 컨테이너가 삭제되면 컨테이너의 데이터는 어떻게 됩니까?데이터는 실제로 로컬 시스템에 저장되고 컨테이너가 시작될 때 데이터에 연결됩니다.이 개념의 이름은 "볼륨 또는 공유 볼륨"입니다.

언급URL : https://stackoverflow.com/questions/49726272/what-is-the-rm-flag-doing

반응형