Docker 내에서 Docker 실행: 상위 Docker의 볼륨에 액세스

Docker 내에서 Docker 실행: 상위 Docker의 볼륨에 액세스

좋습니다. Docker에서 Docker를 실행할 수 있습니다. 많은 문제가 있습니다.이 기사를 참조하십시오.따라서 솔루션에 설명된 대로 호스트 Docker를 사용하여 하위 컨테이너를 실행하는 것이 좋습니다. 따라서 도커 컨테이너의 하위 컨테이너가 아니라 호스트 시스템에서 나옵니다. 따라서 이들은 상위 도커 컨테이너의 형제입니다. 그렇게 했지만 이제 원래 예상대로 작동하는 경로가 하나도 없습니다.

예를 들어 첫 번째 Docker 컨테이너에서는 볼륨을 사용합니다. 두 번째 Docker 컨테이너에서는 첫 번째 볼륨 내의 다른 볼륨을 사용합니다. 이제 두 번째 컨테이너는 첫 번째 컨테이너를 기준으로 한 경로를 사용하지 않습니다. 모든 컨테이너는 호스트의 동일한 Docker 인스턴스에서 직접 실행되므로 호스트를 기준으로 하는 경로를 사용합니다.

  • 호스트 작업 디렉터리는 다음과 같습니다./홈/사용자/theDockerThing
  • 첫 번째 용기의 부피:.:/var/mydata
  • 첫 번째 컨테이너에서 작업 디렉터리는 다음과 같습니다./var/mydata/someproject
  • 두 번째 용기의 부피:.:/var/www/html

내가 원하는 것은 호스트의 디렉토리입니다./home/user/theDockerThing/someproject마운트를 두 번째 컨테이너에 바인딩/var/www/html

하지만/var/www/html알겠어요/var/mydata/someproject어디에도 아무것도 없습니다.

해당 도커는 다른 호스트에서도 직접 실행되어야 하기 때문에 두 번째 도커 구성을 편집하고 싶지 않습니다.

두 번째 Docker 컨테이너에 첫 번째 볼륨을 사용하도록 지시하여 실제 Docker-in-Docker와 더 비슷하게 만들려면 어떻게 해야 합니까?

답변1

모든 컨테이너는 실제로 동일한 docker 데몬에서 실행되므로 첫 번째 수준 dind의 볼륨을 매핑할 수 없습니다. 볼륨을 호스트 경로에 매핑해야 합니다.

두 번째 레벨의 볼륨은 -v /var/mydata/someproject:/var/mydata다음과 같이 제공되지 않습니다.-v /home/user/theDockerThing/someproject:/var/mydata

관련 정보