
제
6
장
컨테이너 이미지
112
참고:
도커는 아래에서 이야기하는 문제점들을 해결하기 위해 ‘루트 없는 (
rootless
) 모드’를 개발하고 있지
만, 이 책을 쓰는 현재 이 모드는 아직 ‘실험적’ 상태이다.
6.5.1
docker
build
의 위험
명령줄에서 실행한
docker
명령 자체는 그리 많은 일을 하지 않는다. 이 명령은 주어진 매개
변수들을 해석해서 적절한
API
요청을 도커 데몬에 보내는데, 데몬과의 상호작용은 모두 도커
소켓이라고 부르는 소켓을 거친다. 이 도커 소켓에 접근할 수 있는 모든 프로세스는 데몬에게
API
요청을 보낼 수 있다.
도커 데몬은 배경에서 계속 실행되는 프로세스로, 컨테이너 및 컨테이너 이미지의 실질적인
실행과 관리를 책임진다. 제
4
장에서 보았듯이 컨테이너를 생성하고 실행하려면 이름공간들을
생성할 권한이 필요하므로, 도커는 반드시 루트 계정으로 실행해야 한다.
컴퓨터 (또는
VM
) 한 대를 이미지 구축 및 레지스트리 등록에만 사용한다고 하자. 도커 접
근 방식에서 그 컴퓨터는 도커 데몬을 루트로 실행해야 한다. 그런데 루트 계정에는 이미지를
구축하고 레지스트리와 상호작용하는 데 필요한 것보다 훨씬 많은 능력이 있다. 추가적인 보안
장치를 두지 않는 한, 이 컴퓨터에서
docker
build
를 실행할 수 있는 모든 ...