![Dockerfile에서 VOLUME 지시문의 목적은 무엇입니까?](https://linux55.com/image/123340/Dockerfile%EC%97%90%EC%84%9C%20VOLUME%20%EC%A7%80%EC%8B%9C%EB%AC%B8%EC%9D%98%20%EB%AA%A9%EC%A0%81%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
문서에는 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 myvol
Docker 파일에 추가하면 어떤 차이가 있나요?
답변1
Dockerfile()을 실행한 후 VOLUME /myvol
Mountpoint()가 생성됩니다(검사 사용)./myvol
docker 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
)입니다.