docker는 시작 시 스크립트를 실행하고, 변경 사항을 커밋하고, 마운트된 스크립트를 제거합니다.

docker는 시작 시 스크립트를 실행하고, 변경 사항을 커밋하고, 마운트된 스크립트를 제거합니다.

기존 이미지에서 실행하고 싶은 스크립트가 있습니다. 이를 위해 컨테이너를 실행하는 동안 스크립트를 마운트하고 변경 사항을 커밋하고 이미지를 교체합니다. 시작 시 스크립트 바인딩의 문제는 볼륨이 새 이미지에도 남아 있다는 것입니다. 이미지에 대한 검사를 실행하면 영구 인수가 되고 호스트 시스템에 일회성 스크립트가 없기 때문에 실행이 실패하는 것을 볼 수 있습니다.

스크립트가 실행되어 OS 수준을 변경하고 완전히 제거되는 방법이 있습니까? 스크립트는 상당히 복잡하며 다른 스크립트도 많이 호출합니다.

스크립트로 컨테이너를 실행하는 명령

 docker run --name temp_container --ipc host -v /path_to_scripts_dir:/new_dir iamge bash -v /new_dir/call_scripts.sh'

Docker를 처음 사용하는 경우 어떤 조언이라도 도움이 될 것입니다!

답변1

깃발을 사용해 볼 수도 있습니다 --rm.

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

Docker 실행 참조

관련 정보