더북(TheBook)

6.2 도커 볼륨을 사용하는 컨테이너 실행하기

도커 볼륨은 도커에서 스토리지를 다루는 단위다. 컨테이너를 위한 USB 메모리라 생각하면 이해하기 쉬울 것이다. 볼륨은 컨테이너와 독립적으로 존재하며 별도의 생애주기를 갖지만, 컨테이너에 연결할 수 있다. 퍼시스턴시가 필요한 유상태 애플리케이션을 컨테이너로 실행하려면 볼륨을 사용해야 한다. 볼륨을 생성해 애플리케이션 컨테이너에 연결하면 컨테이너 파일 시스템의 한 디렉터리가 된다. 나중에 애플리케이션을 업데이트하더라도 새로운 컨테이너에 다시 볼륨을 연결하면 데이터가 그대로 유지된다.

컨테이너에서 볼륨을 사용하는 방법은 두 가지다. 첫 번째는 수동으로 직접 볼륨을 생성해 컨테이너에 연결하는 방법이고, 두 번째는 Dockerfile 스크립트에서 VOLUME 인스트럭션을 사용하는 방법이다. 이 인스트럭션을 사용해 만든 이미지로 컨테이너를 실행하면 자동으로 볼륨을 생성한다. VOLUME 인스트럭션의 문법은 VOLUME <target-directory> 형식이다. 예제 6-1은 diamol/ch06-todo-list 이미지를 빌드하기 위한 멀티 스테이지 빌드 Dockerfile 스크립트의 일부다. 이 애플리케이션은 볼륨을 사용하는 유상태 애플리케이션이다.

예제 6-1 볼륨이 사용된 멀티 스테이지 빌드 Dockerfile 스크립트의 일부

FROM diamol/dotnet-aspnet
WORKDIR /app
ENTRYPOINT ["dotnet", "ToDoList.dll"]

VOLUME /data
COPY --from=builder /out/ .
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.