2013-06-09 5 views
0

예를 들어 설명해 드리겠습니다. 동일한 이미지에서 두 개의 별도 프로세스를 실행한다고 가정합니다. 그 중 하나가 파일을 만들고 실행을 계속합니다. 이 파일을보고, 검사하고, 변경하려면 다른 컨테이너에서 실행중인 다른 프로세스가 필요합니다.동일한 이미지에서 실행중인 컨테이너가 파일 시스템을 공유하도록 허용 할 수 있습니까?

미리 감사드립니다.

답변

2

볼륨을 사용할 수 있습니다. 개념은 컨테이너 A가 특정 디렉토리에 마운트 된 볼륨을 작성하여 거기에서 공유해야 할 모든 작업을 수행하고 컨테이너 B가 컨테이너 A에서 볼륨을 마운트하기위한 것입니다.

1) ID=$(docker run -d -v /tmp base /bin/sh -c 'echo hello > /tmp/world')

2) docker run -volumes-from $ID base cat /tmp/world

커밋이 없음을 유의하십시오. 두 컨테이너 모두 동일한 이미지를 사용합니다.

+0

감사합니다. 이것은 아마도 내가 물었던 문제를 해결할 것입니다. 이제 두 가지 질문이 있습니다. 호스트 운영 체제에서 폴더를 마운트 할 수 있습니까? 그렇다면 나머지는 무시하십시오. 그렇지 않은 경우 원격 API를 사용하여 공유 볼륨을 호스팅하는 컨테이너를 만들려고합니다. 그러나 내가 이해하는 한, '/ containers/create'엔드 포인트에는 매개 변수 'Volumes'가 있으며 유형은 약간 분명하지 않습니다. 양식의 문자열 및 json 객체 (string-> string)가 작동하지 않았습니다. 이 문제에 대한 제안 사항이 있습니까? – sarslanhan

+0

'볼륨'매개 변수는 객체가 아닌 문자열 배열을 사용합니다. 호스트에서 볼륨을 마운트하는 것은 아직 가능하지 않지만 곧 제공 될 예정입니다. (다음 주에 나는 생각한다). – creack

2

새로운 호스트 Bind Mounts (현재 마스터에 있고 0.5.0으로 곧 출시 예정)을 사용하여 호스트 디렉토리를 컨테이너에 마운트 할 수 있습니다. 다음과 같이

사용법은 다음과 같습니다이 읽기 - 쓰기 액세스, 호스트의 /host 디렉토리 컨테이너의 /container 디렉토리에 설치되어 있는지 확인합니다

docker run -t -i -v /host:/container base bash 

.

+0

그 사이에 -b 옵션이 -v로 바뀐 것 같습니다 : [https://github.com/dotcloud/docker/pull/602#issuecomment-19944402] – caiman