Docker 컨테이너에서 Docker 컨테이너를 시작할 때 마운트하는 방법
4144 단어 Docker
개요
공유 호스트 Docker daemon의 Docker 컨테이너(컨테이너 1)에서 Docker 컨테이너(컨테이너 2)를 시작할 때 컨테이너 1의 디렉토리를 컨테이너 2에 설치하는 방법 소개
원래 그런 용도가 있나요?예를 들어, 컨테이너 기반 CI 환경에서 테스트용 컨테이너에 소스 관리용 컨테이너의 리소스를 로드하고 테스트하는 경우
결론
호스트 Docker daemon을 마운트하는 컨테이너 1의 디렉토리를 컨테이너 2로 마운트할 때 지정한 파일 경로는 호스트가 보는 파일 경로여야 합니다.
인증 코드
이 검증은 용기에서 새 용기를 시작합니다
환영 연회상태, 어느 세계에 있는지 몰라
따라서 아래의 명령으로 집행 환경을 표시하기 위해[コンテナ1]
등으로 표시한다
호스트 Docker daemon을 마운트하는 컨테이너 1의 디렉토리를 컨테이너 2로 마운트할 때 지정한 파일 경로는 호스트가 보는 파일 경로여야 합니다.
인증 코드
이 검증은 용기에서 새 용기를 시작합니다
환영 연회상태, 어느 세계에 있는지 몰라
따라서 아래의 명령으로 집행 환경을 표시하기 위해[コンテナ1]
등으로 표시한다
제작 용기 1, 용기 1로 docker 설치
# [ホスト] コンテナ1を作成
> docker run --rm -it --name container1 -v /var/run/docker.sock:/var/run/docker.sock:ro ubuntu:14.04 /bin/bash
# [コンテナ1] dockerをインストール
> apt-get update && apt-get install -y docker.io
# [コンテナ1] 確認用のファイルを作成し、作成されたファイルを確認
> mkdir /tmp/mount_test && touch /tmp/mount_test/test1.txt && touch /tmp/mount_test/test2.txt && touch /tmp/mount_test/test3.txt && ls -la /tmp/mount_test
용기 1에 용기 1
/tmp/mount_test
을 마운트하는 용기 2 만들기 (실패 예시)# [コンテナ1] コンテナ2を作成
> docker run --rm -it --name container2 -v /tmp/mount_test:/tmp/mount_test ubuntu:14.04 /bin/bash
컨테이너 2에 마운트 확인
/tmp/mount_test
서류가 없는 걸 확인할 수 있어요.왜 없지!?호스트의 Docker daemon을 마운트 중이므로 마운트할 때 호스트의 파일 경로가 표시됩니다.
따라서 호스트에
/tmp/mount_test
가 없으므로 마운트 대상이 비어 있음# [コンテナ2] /tmp/mount_testを確認
> ls -la /tmp/mount_test
drwxr-xr-x 2 root root 40 Sep 15 06:15 .
drwxrwxrwt 1 root root 4096 Sep 15 06:15 ..
다시 정신을 차리고 다음에 호스트에서 본 용기 1의 파일 경로로 마운트하세요
파일 경로 사용
docker inspect
명령 획득요점 은 용기화 시 만들어진 차분 을 diff 속 에서 생성하는 것 이다
상기 코드
/tmp/mount_test
를 통해 용기 이미지를 디프에 차분으로 저장# [コンテナ2] コンテナ2から抜けます
> exit
# [コンテナ1] ホストから見たコンテナ1のファイルパスを取得する
> docker inspect --format='{{.GraphDriver.Data.UpperDir}}' container1
# [コンテナ1] テナント2を作成
# 上記のコマンドで得られたファイルパスを以下の<xxx>に置き換えてください
> docker run --rm -it --name container2 -v <xxx>/tmp/mount_test:/tmp/mount_test ubuntu:14.04 /bin/bash
컨테이너 2에 마운트 확인
/tmp/mount_test
컨테이너 1의 파일이 마운트되었는지 확인할 수 있습니다.# [コンテナ2] /tmp/mount_testを確認
> ls -la /tmp/mount_test
drwxr-xr-x 2 root root 4096 Sep 15 06:00 .
drwxrwxrwt 1 root root 4096 Sep 15 08:48 ..
-rw-r--r-- 1 root root 0 Sep 15 06:00 test1.txt
-rw-r--r-- 1 root root 0 Sep 15 06:00 test2.txt
-rw-r--r-- 1 root root 0 Sep 15 06:00 test3.txt
Reference
이 문제에 관하여(Docker 컨테이너에서 Docker 컨테이너를 시작할 때 마운트하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/comefigo/items/472a0f9e10042aa95c0b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)