도커 파일에서 볼륨의 목적은 무엇입니까?
도커의 볼륨에 대해 더 깊이 이해하려고 하는데, 다음과 같은 차이점/사용 사례를 파악하는 데 어려움을 겪고 있습니다.
-
docker volume create
-
docker run -v /path:/host_path
-
VOLUME
Dockerfile
을 대다
일이 잘 모르겠습니다.VOLUME
회의 -v
깃발을 올리다
은 입니다./var/lib/docker/volumes/...
도커 파일로 선언할 수 있습니다. 즉, 이미지에서 컨테이너를 시작할 때마다 볼륨이 생성(공백)됩니다.
-v
선택.런타임에 선언할 수 있습니다.
VOLUME
+docker run -v
는 을 ) 는합니다의 수 합니다./var/lib/docker/volumes/...
Docker volume create는 Docker 파일을 정의하고 이미지를 구축하고 컨테이너를 실행할 필요 없이 볼륨을 만듭니다.다른 컨테이너가 해당 볼륨을 빠르게 탑재할 수 있도록 하는 데 사용됩니다.
볼륨의 일부 내용을 유지했지만 그 이후 컨테이너를 삭제한 경우(기본적으로 docker rm -v를 사용하지 않는 한 관련 볼륨은 삭제되지 않음) 해당 볼륨을 새 컨테이너에 다시 첨부할 수 있습니다(동일한 볼륨을 선언합니다).
"Docker - 컨테이너에 연결되지 않은 볼륨에 액세스하는 방법"을 참조하십시오.
도커 볼륨을 생성하면 이름이 지정된 볼륨을 컨테이너에 다시 연결할 수 있습니다.
docker volume create --name aname
docker run -v aname:/apath --name acontainer
...
# modify data in /apath
...
docker rm acontainer
# let's mount aname volume again
docker run -v aname:/apath --name acontainer
ls /apath
# you find your data back!
VOLUME
로워집니다와 로워집니다.volumes-from
런타임 매개 변수입니다.
다음 도커 파일이 주어지면:
FROM busybox
VOLUME /myvolume
다음을 사용하여 이미지를 작성합니다.
docker build -t my-busybox .
그리고 용기를 회전시킵니다.
docker run --rm -it --name my-busybox-1 my-busybox
에 띄는 은 이 에 입니다라는 입니다.myvolume
하지만 컨테이너에서 나오면 볼륨도 제거되기 때문에 특별히 흥미롭지는 않습니다.
이 폴더에 빈 파일을 만드므로 컨테이너에서 다음을 실행합니다.
cd myvolume
touch hello.txt
새 합니다.my-busybox-1
:
docker run --rm -it --volumes-from my-busybox-1 --name my-busybox-2 my-busybox
될 입니다.my-busybox-2
합니다를 합니다.hello.txt
인에myvolume
폴더.
두 컨테이너를 모두 종료하면 볼륨도 함께 제거됩니다.
@라듐226
- Docker 파일에서 VOLUME을 지정하면 컨테이너 내부의 일반 디렉토리가 아닌 실행 시 폴더가 볼륨(즉, 외부 컨테이너)으로 처리되도록 합니다.성능과 접근성이 미치는 영향을 기록합니다.
- "docker run" 명령행에 "-v"를 지정하는 것을 잊어버렸다면, 위의 내용은 여전히 사실입니다.그냥 볼륨 이름이 익명이 될 뿐입니다.그러나 이러한 익명 볼륨에서 데이터에 액세스하거나 복구할 수 있는 방법은 여전히 있습니다.
도커 허브의 MYSQL 사용:
아래 명령어를 예로 들어 실행합니다.
$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
명령의 -v/my/own/dataadir:/var/lib/mysql 부분은 기본 호스트 시스템에서 /my/own/dataadir 디렉토리를 컨테이너 내부에 /var/lib/mysql로 마운트합니다. 여기서 MySQL은 기본적으로 데이터 파일을 씁니다.
따라서 컨테이너가 중지되었을 때 지속되는 디렉토리를 사용할 수 있으며, 데이터베이스 작업과 같은 일부 작업에도 더 높은 성능을 제공합니다.
언급URL : https://stackoverflow.com/questions/34809646/what-is-the-purpose-of-volume-in-dockerfile
'programing' 카테고리의 다른 글
ps 명령이 도커 컨테이너에서 작동하지 않습니다. (0) | 2023.10.02 |
---|---|
SCRIPT5: 워드프레스의 jQuery.min CDN 파일로 인해 IE9에서 액세스 거부 (0) | 2023.10.02 |
Python os.system이 CLI 응용 프로그램에서 실행할 명령을 입력합니다. (0) | 2023.10.02 |
아이폰 화면 중앙에 활동 표시기를 표시하는 방법은? (0) | 2023.10.02 |
'HTMLMediaElement'에서 'play'를 실행하지 못함: API는 사용자 제스처로만 시작할 수 있습니다. (0) | 2023.10.02 |