115
3
장
컨테이너
물론 맞는 말이다. 일단 베이스 이미지를 저장하거나 이미지 레이어가 캐시로 전환되면 당사자
는 문제가 없다. 그러나 캐시가 없는 새로운 빌드 노드를 처음 실행하거나 신입 개발자가 입사
후 처음으로 베이스 이미지를 빌드할 때 문제가 발생할 것이다. 왜일까? 외부 리소스는 관리자
도 외부에 있기 때문이다. 시간이 지나면 외부 리소스를 다른 곳으로 옮기거나, 접근을 제한하
거나, 그냥
중단중단
시켜버리는 일이 비일비재하다.
3.3.6 3.3.6
비밀 보호비밀 보호
민감한 정보나 파일을 이미지에 추가하지 않아야 하는 이유는 앞서 설명했다. 그러나 이것만으
로 충분치 않다. 베이스 이미지나 이전 레이어에 개인 정보 파일이 있어도
Dockerfile
에서 명
령을 내려 삭제하면 된다고 생각하는 사람은 한번 더 주목하기 바란다. 필자는 베이스 레이어
를 ‘
fix
’하려는 시도를 목격한 적이 있다. 당분간 새로 빌드할 예정이 없는 이미지였다.
앞서 설명한 레이어 작동 방식을 제대로 이해했다면, 후속 레이어에서 파일을 삭제해도 실제로
베이스 레이어에서 삭제되지 않는다는 것을 알고 있을 것이다. 후속 이미지를 기반으로 실행되는
컨테이너에서 파일이 보이지 않아도 실제로는 여전히 존재한다. 이미지가 저장된 시스템에 존재
하며, 이미지를 기반으로 실행되는 컨테이너의 시스템에 존재한다. 장기 보관되는 이미지 레지스
트리에도 존재한다. 마치 소스 관리 시스템에 자신의 암호가 올라가지 않도록 주의해야 하는 이
유와 일맥상통하는 구석이 있다. 비밀스러운