programing

Docker의 상위 시스템에서 컨테이너로 디렉토리 마운트

copyandpastes 2021. 1. 16. 11:00
반응형

Docker의 상위 시스템에서 컨테이너로 디렉토리 마운트


상위 시스템의 디렉터리를 Docker의 컨테이너에 마운트하려면 어떻게해야합니까?


* 업데이트-아래 답변을 참조하십시오. 더 이상 정답이 아닙니다. *

Docker는 더 이상 반복 가능한 실행 환경을 보장 할 수 없기 때문에 설계 상 마운트 할 수 없습니다.

그러나 다음을 수행 할 수 있습니다.

  1. 호스트의 루트 파일 시스템을 가져 와서 새 이미지를 만듭니다.

    tar -C / -c . | docker import - entend/custombase
    
  2. 예를 들어 'debootstrap'실행 결과와 같은 부트 스트랩 루트 파일 시스템을 가져옵니다. (이것은 공식 "기본"이미지가 생성 된 방법이므로 단순히 'docker pull base'를 실행하는 것이 더 나을 수 있습니다.)

    debootstrap precise ./bootstrap
    tar -C ./bootstrap -c . | docker import - entend/ubuntubase
    
  3. 실행할 때 로컬 디렉토리의 내용을 컨테이너에 삽입하십시오.

    IMAGE=base; SRC=./stuff; DST=/tmp/stuff; CMD="echo hello world"; tar -C $src -c . | docker run $IMAGE -i /bin/sh -c "tar -C $DST -x; $CMD"
    

    그러면 $ IMAGE에서 컨테이너가 실행되고 호스트 디렉터리 $ SRC를 컨테이너 디렉터리 $ DST에 복사 한 다음 $ CMD 명령을 실행합니다.

    이 마지막 예제는 일반적으로 컨테이너 내에서 빌드 명령을 실행하기 전에 소스 코드를 삽입하는 데 사용됩니다.


최종 업데이트와 마찬가지로이 기능은 이제 Docker에서 릴리스되었습니다 (@imiric에 연결된 pull 요청 이후 API가 변경되었지만).

다음과 같은 명령을 사용하십시오.

docker run -v /tmp:/root myImage

이미지 내에서 /tmp호스트 머신에서 마운트하기 위해 /root.

출처 : https://docs.docker.com/engine/userguide/dockervolumes/


이 질문을 업데이트하기 위해 곧 Docker에서 가능할 것입니다.

이 풀 리퀘스트 는 실제로이 기능을 구현했으며 곧 마스터에 병합 될 것입니다.

이 포크 를 설치 하면 지금 바로 사용할 수 있습니다 .


이는 IS 고정 표시기 수 :

애플리케이션 컨테이너에 데이터를 마운트합니다.

docker run -t -i -rm -volumes-from DATA -name client1 ubuntu bash

OS X 및 Windows 용 트릭

두 개의 연속 마운트 : 여기에있는 많은 게시물이 두 개의 boot2docker를 사용하고있을 것 같습니다. 아무것도 표시되지 않는 이유는 호스트가 아닌 boot2docker에서 디렉토리를 마운트하기 때문입니다. 기본적으로 두 개의 연속 마운트가 필요합니다. 첫 번째는 호스트에서 시스템으로 디렉토리를 마운트하는 것이고 두 번째는 boot2docker에서 새 디렉토리를 다음과 같이 컨테이너로 마운트하는 것입니다.

  1. boot2docker에 로컬 시스템을 마운트합니다.

    sudo mount -t vboxsf hostfolder /boot2dockerfolder
    
  2. Linux 컨테이너에 boot2docker 파일 마운트

    docker run -v /boot2dockerfolder:/root/containerfolder -i -t imagename
    

그런 다음 lscontainerfolder 내부 를 수행 하면 hostfolder의 내용을 볼 수 있습니다.

참조 URL : https://stackoverflow.com/questions/15693153/mounting-directory-from-parent-system-to-container-in-docker

반응형