도커 컨테이너에 여러 볼륨을 탑재하시겠습니까?
다음과 같은 것을 사용하여 호스트에 있는 디렉토리를 컨테이너에 마운트할 수 있다는 것을 알고 있습니다.
docker run -t -i -v '/on/my/host:/on/the/container' ubuntu /bin/bash
두 개 이상의 호스트-컨테이너 쌍을 만드는 방법(예: 쉼표로 구분된 목록) 또는 배열로 전달하는 방법이 있습니까?
여러 번 통과-v
논쟁들.
예를 들어 다음과 같습니다.
docker -v /on/my/host/1:/on/the/container/1 \
-v /on/my/host/2:/on/the/container/2 \
...
이제 Docker는 다음을 사용하는 방향으로 마이그레이션할 것을 권장합니다.--mount
.
여러 볼륨 마운트에 대해서도 현재 도커 설명서에서 자세히 설명하고 있습니다.
보낸이: https://docs.docker.com/storage/bind-mounts/
$ docker run -d \
-it \
--name devtest \
--mount type=bind,source="$(pwd)"/target,target=/app \
--mount type=bind,source="$(pwd)"/target,target=/app2,readonly,bind-propagation=rslave \
nginx:latest
기존의 기존 답변은 여전히 유효하며, 현재 가장 잘 알려진 방법에 맞춰 답변을 유지하려고 할 뿐입니다.
사용가능-v
옵션에서 여러 번docker run
컨테이너에 여러 디렉토리를 마운트하는 명령:
docker run -t -i \
-v '/on/my/host/test1:/on/the/container/test1' \
-v '/on/my/host/test2:/on/the/container/test2' \
ubuntu /bin/bash
볼륨에 읽기 전용 또는 읽기 및 쓰기 전용을 가질 수 있습니다.
docker -v /on/my/host/1:/on/the/container/1:ro \
docker -v /on/my/host/2:/on/the/container/2:rw \
윈도우즈의 경우: 두 개의 디렉터리 E:\data\dev & E:\data\dev2를 마운트해야 하는 경우
용도:
docker run -v E:\data\dev:c:/downloads -v E:\data\dev2 c:/downloads2 -i --publish 1111:80 -P SomeBuiltContainerName:SomeLabel
읽기-쓰기 또는 읽기 전용이 기본 옵션인지 묻는 댓글을 보았습니다. 읽기-쓰기는 기본 옵션입니다.(댓글을 달기에 부족해서 글을 남깁니다)
도커 설명서에 따라 다음을 실행합니다.
docker run -d \
--name devtest \
--mount source=myvol2,target=/app \
nginx:latest
그 다음에 사용합니다.docker inspect devtest
출력의 "마운트" 섹션에서 "RW" 옵션을 찾습니다.
"Mounts": [
{
"Type": "volume",
"Source": "/var/lib/docker/volumes/myvol2/_data",
"Destination": "/app",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
에서는 기본 옵션을 통해 볼륨을 읽기 및 쓰기 모두 사용할 수 있음을 확인할 수 있습니다.
볼륨을 읽기 전용으로 설정하려면(공식 문서마다 다시) 추가합니다.readonly
당신 다음에source
그리고.destination
태그:
docker run -d \
--name=nginxtest \
--mount source=nginx-vol,destination=/usr/share/nginx/html,readonly \
nginx:latest
달려.docker inspect nginxtest
그리고 "마운트"를 찾습니다.
"Mounts": [
{
"Type": "volume",
"Source": "/var/lib/docker/volumes/nginx-vol/_data",
"Destination": "/usr/share/nginx/html",
"Driver": "local",
"Mode": "",
"RW": false,
"Propagation": ""
}
],
(참고: 공식 문서가 왜 다음과 같이 바뀌는지 모르겠습니다.target
그리고.destination
tags, 하지만 저는 그것들이 서로 교환적으로 사용될 수 있다는 가정하에 작업하고 있습니다.)
실행 가능한 예:
docker run -v /Users/brandomiranda/iit-term-synthesis:/home/bot/iit-term-synthesis \
-v /Users/brandomiranda/pycoq:/home/bot/pycoq \
-v /Users/brandomiranda/ultimate-utils:/home/bot/ultimate-utils \
-ti brandojazz/iit-term-synthesis:test bash
그러나 먼저 다음을 수행합니다.
docker pull brandojazz/iit-term-synthesis:test
아니면 할 수 있습니다.
docker run -v /var/volume1 -v /var/volume2 DATA busybox true
언급URL : https://stackoverflow.com/questions/18861834/mounting-multiple-volumes-on-a-docker-container
'programing' 카테고리의 다른 글
Oracle LOB를 삭제하는 방법 (0) | 2023.11.04 |
---|---|
오류 ORA-01804 텍스트를 검색하는 중 오류 발생 (0) | 2023.10.30 |
CSS에서 @media screen 및 (max-width: 1024px)는 무엇을 의미합니까? (0) | 2023.10.30 |
wpdb 업데이트 쿼리가 작동하지 않음 (0) | 2023.10.30 |
데이터베이스 백업을 위한 리눅스 셸 스크립트 (0) | 2023.10.30 |