Dockerfile에서 VOLUME 지시문의 목적은 무엇입니까?

Dockerfile에서 VOLUME 지시문의 목적은 무엇입니까?

문서에는 VOLUME 지시어가 마운트 지점을 생성한다고 되어 있지만 저는 다음을 사용하여 이미지를 생성했습니다.

FROM alpine
RUN mkdir /myvol
RUN echo "hello world" > /myvol/greeting

mount /myvol컨테이너의 파일 시스템에서 다른 경로를 사용할 수 있으며 호스트 시스템의 데이터를 docker run -v vol:/myvol myimage볼 수 있습니다 ./var/lib/docker/vol/_data

VOLUME myvolDocker 파일에 추가하면 어떤 차이가 있나요?

답변1

Dockerfile()을 실행한 후 VOLUME /myvolMountpoint()가 생성됩니다(검사 사용)./myvoldocker run -it --rm ${YOURCONTAINER_IMAGE} /bin/bash

mount | grep myvol
/dev/mapper/host--vg-var on /myvol type ext4 (rw,relatime,data=ordered)

탑재 지점은 호스트 컴퓨터의 임시 Docker 볼륨이 됩니다.

de5a4052ac6f48788baf17ed66efa603eb89aa023aac7768688839ec6df7dbec/_data/the_data_within_myvol

( )를 실행 docker run -v vol:/myvol myimage하면 볼륨도 생성되고 vol( ) 아래 컨테이너 내부의 모든 파일을 가져옵니다 /myvol.

차이점은 생성 방법(Dockerfile에서 또는 를 사용하여 docker run -v)입니다.

관련 정보