구형 컨테이너 이미지 정리하기

하하, 알겠습니다. 속도를 위한 건 아니지만, 공간을 비우는 명령어는 일종의 비밀 명령어라고 할 수 있죠! :wink:

물론 다음을 말하는 건데요:

./launcher cleanup

이 명령어는 디스크 공간이 부족할 때 오래된 이미지를 정리해 줍니다. 이건 제가 직접 여러 번 실행해 본 적이 있고, b) 존재를 모르면 쉽게 찾기가 어렵다는 점, 그리고 c) Meta에서 지난 몇 년간 적어도 수십 번은 언급된 적이 있는 문제입니다.

솔직히 "cleanup"이 왜 자동으로 실행되지 않는지 모르겠어서 언급해 봅니다. 예를 들어 한 달에 한 번, 또는 재빌드될 때마다 자동으로 실행되는 식으로요. 왜 기본 설정으로 모든 오래된 컨테이너를 영원히 유지해야 하는지 이해가 안 됩니다.

요즘에는 디스크 공간이 5GB 미만으로 남았을 때 이 명령어를 대화형으로 실행합니다.

아, 그렇군요. 그러면 놓치기 더 힘들겠네요! 그래도 이건 백그라운드 작업으로 처리하는 게 낫다고 생각해요. 그래야 아예 수동으로 실행할 필요가 없으니까요. (혹시 제가 놓치고 있는 부분이 있어서, 사용하지 않는 오래된 컨테이너를 유지해야 하는 합당한 이유가 있는 건 아닌지 궁금하네요.)

누군가가 오래된 컨테이너를 남겨두고 싶어 하는 이유를 추측할 수는 없습니다. 10년 전에 폐기했던 컴퓨터의 하드 드라이브를 통째로 가지고 있기도 합니다. 다른 사람이 임의로 삭제하는 것은 원하지 않습니다. :wink:

아, 맞아요. 솔직히 그 이유가 뭔지 전혀 몰라서 물어본 거예요 :thinking: :upside_down_face:

실제 데이터 보존을 위해 백업을 유지하는 건 당연히 이해해요. 하지만 오래된 컨테이너는 또 다른 문제잖아요? 저는 Docker 전문가가 아니라서 비유가 약할 수 있지만, 제 생각에는 macOS Catalina를 쓰면서 Mojave, High Sierra, Sierra, El Capitan, Yosemite 등 이전 버전들의 복사본을 계속 남겨둔 것과 비슷해요.

오래된 컨테이너를 유지하는 데에는… 이유가 있다는 점은 믿어요! 다만 Discourse를 몇 년간 사용해 왔는데 그런 경우를 한 번도 겪어본 적이 없어서, 저처럼 기본 설치(vanilla install)를 사용하는 사용자의 99%는 그런 기능이 필요 없을 것 같다고 추측하는 거예요. 오래된 컨테이너를 항상 자동으로 정리할 수 있는 옵션이 있다면 바로 사용했을 텐데요!

즉, 메이저 업데이트 시 플러그인이 항상 깨지는데, 특히 서드파티 플러그인의 경우가 그렇습니다. 이는 메이저 macOS 릴리스가 특정 앱의 실행을 막는 것과 크게 다르지 않습니다.

아, 그러니까 무언가 문제가 생겼을 때 롤백할 수 있도록 오래된 컨테이너를 유지하는 것이 유용하다는 말씀이시군요? 그렇다면 바로 이전 컨테이너만 필요할까요, 아니면 아주 오래된 컨테이너가 필요할 수도 있을까요?

macOS에 비유한 것이 완벽하지는 않지만, 제 말씀의 핵심은 최신 버전에서만 실행되는 레거시 앱이 있더라도 아주 오래된 OS로 돌아가고 싶지 않다는 것입니다. "2년 전의 오래된 Discourse 컨테이너가 실제로 필요했던 구체적인 사례가 있다"는 예시를 주신다면, 저는 그때 조용히 하겠습니다 :slight_smile: 솔직히 이건 제가 아주 오래전부터 궁금해하던 부분이거든요.

제 비유가 완벽하지는 않았습니다. 하지만 어떤 사용자가 도커 이미지와 컨테이너를 보유하고 있는데, 그것들이 현재 사용되지 않고 있음에도 불구하고 삭제하고 싶지 않은 경우가 있습니다. 가끔씩만 실행하기 때문에, 다음에 필요할 때 다시 빌드하는 수고를 피하고 싶기 때문입니다.