Docker Volume을 정리해 봤습니다.
10401 단어 Docker
개시하다
처음에 볼륨을 잘 몰라서.
총괄해 보았다.
(중요한 부분만 기재되어 있으니 오류가 있으면 메시지를 남겨주세요)
컨디션
본 보도는 다음과 같은 환경 등을 사용했다.
컨디션
Version
application
Windows
10(64bit)
Docker for Windows
macOS
Mojave(64bit)
Docker for Mac
미리 준비하다
Docker 환경 사용 가능
Mac: Docker 환경에서 사용 가능(Comming Soon)
[결론] - v 옵션의 동작은 다음과 같다.
참고로 공식적으로 추천하는 것은
--mount
이번에는 -v
의 확인이기 때문에 관련되지 않는다--mount
.그 다음은 확인한 내용입니다.
컨테이너 시작 및 생성(자동)
terminal
# ① ~ ⑤
>docker run -v vol1 --name c1 -itd osugizmo/alpine:3.9.4 /bin/sh
>docker volume ls ★ボリューム名をメモっておく
>docker run -v vol1 --name c2 -itd osugizmo/alpine:3.9.4 /bin/sh
>docker run -v <①Volumeのhash値>:/vol1 --name c3 -itd osugizmo/alpine:3.9.4 /bin/sh
>docker run -v vol2:/vol1 --name c4 -itd osugizmo/alpine:3.9.4 /bin/sh
>docker run -v /c/vol3:/vol1 --name c5 -itd osugizmo/alpine:3.9.4 /bin/sh
# 起動コンテナの確認
>docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d44602250ba5 osugizmo/alpine:3.9.4 "/bin/sh" 26 minutes ago Up 26 minutes c5
fd986a43c555 osugizmo/alpine:3.9.4 "/bin/sh" 26 minutes ago Up 26 minutes c4
52170f5abcd0 osugizmo/alpine:3.9.4 "/bin/sh" 26 minutes ago Up 26 minutes c3
b0899080f006 osugizmo/alpine:3.9.4 "/bin/sh" 27 minutes ago Up 27 minutes c2
4a7d512beff1 osugizmo/alpine:3.9.4 "/bin/sh" 27 minutes ago Up 27 minutes c1
# ボリュームの確認
>docker volume ls
DRIVER VOLUME NAME
local 3fe77f2217648fad943a325442a85ec350213eb837f7169d653ddbf04c61b4fd
local 62ec5b816fc407e53582a092762ff43610e7f91f99b95c112fd83b6745a3abd6
local vol2
C1 컨테이너에 연결된 암호화 볼륨에 파일 만들기
terminal
>docker exec -it c1 /bin/sh
/# ls
bin dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var vol1 # <---★マウントされている
/# echo c1-container > /vol1/c1-file1.txt # <---★ファイル作成+書き込み
/# ls -la /vol1/
total 12
drwxr-xr-x 2 root root 4096 Jun 16 17:39 .
drwxr-xr-x 1 root root 4096 Jun 16 17:04 ..
-rw-r--r-- 1 root root 13 Jun 16 17:39 c1-file1.txt # <---★ファイルが存在する
/# cat /vol1/c1-file1.txt
c1-container # <---★書き込まれている
/# exit
C2 컨테이너에 연결된 암호화 볼륨에 파일 만들기
terminal
>docker exec -it c2 /bin/sh
/# ls
bin dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var vol1 # <---★同じvol1でマウントされている
/# ls -la /vol1 # <---★C1とは別のボリュームなのでファイルが存在しない
total 8
drwxr-xr-x 2 root root 4096 Jun 16 17:04 .
drwxr-xr-x 1 root root 4096 Jun 16 17:04 ..
/# echo c2-container > /vol1/c2-file1.txt # <---★ファイル作成+書き込み
/# ls -la /vol1/
total 12
drwxr-xr-x 2 root root 4096 Jun 16 17:50 .
drwxr-xr-x 1 root root 4096 Jun 16 17:04 ..
-rw-r--r-- 1 root root 13 Jun 16 17:50 c2-file1.txt # <---★ファイルが存在する
/# cat /vol1/c2-file1.txt
c2-container # <---★書き込まれている
/# exit
C3 컨테이너에 연결된 암호화 볼륨에 C1 볼륨의 C1 파일이 있는지 확인
terminal
>docker exec -it c3 /bin/sh
/# ls
bin dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var vol1 # <---★同じvol1でマウントされている
/# ls -la /vol1 # <---★C1のボリュームなのでファイルが存在する
total 12
drwxr-xr-x 2 root root 4096 Jun 16 17:39 .
drwxr-xr-x 1 root root 4096 Jun 16 17:05 ..
-rw-r--r-- 1 root root 13 Jun 16 17:39 c1-file1.txt
/# cat /vol1/c1-file1.txt
c1-container # <---★C1で作成したファイル+内容と一致
/# exit
C4 컨테이너에 연결된 암호화 볼륨에 파일 만들기
terminal
>docker exec -it c4 /bin/sh
/# ls
bin dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var vol1 # <---★マウントされている
/# echo c4-container > /vol1/c4-file1.txt # <---★ファイル作成+書き込み
/# ls -la /vol1/
total 12
drwxr-xr-x 2 root root 4096 Jun 16 18:20 .
drwxr-xr-x 1 root root 4096 Jun 16 17:05 ..
-rw-r--r-- 1 root root 13 Jun 16 18:20 c4-file1.txt # <---★ファイルが存在する
/# cat /vol1/c4-file1.txt
c4-container # <---★書き込まれている
/# exit
C5 컨테이너에 연결된 암호화 볼륨에 파일 만들기
terminal
>docker exec -it c5 /bin/sh
/# ls
bin dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var vol1 # <---★同じvol1でマウントされている
/# ls -la /vol1 # <---★C1~C4とは別のボリュームなのでファイルが存在しない
total 8
drwxr-xr-x 2 root root 4096 Jun 16 17:04 .
drwxr-xr-x 1 root root 4096 Jun 16 17:04 ..
/# echo c5-container > /vol1/c5-file1.txt # <---★ファイル作成+書き込み
/# ls -la /vol1/
total 5
drwxrwxrwx 2 root root 0 Jun 16 18:13 .
drwxr-xr-x 1 root root 4096 Jun 16 17:05 ..
-rwxr-xr-x 1 root root 13 Jun 16 18:13 c5-file1.txt<---★ファイルが存在する
※ホスト(Windows)とbindしているから?実行権限が自動でついた
/# cat /vol1/c5-file1.txt
c5-container # <---★書き込まれている
/# exit
>cd c:\vol3
>c:\vol3>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は C823-E669 です
c:\vol3 のディレクトリ
2019/06/17 03:13 <DIR> .
2019/06/17 03:13 <DIR> ..
2019/06/17 03:13 13 c5-file1.txt # <---★書き込まれている
최후
저는 개인적으로 호스트perission의 영향을 받고 싶지 않아요.
추출하고 싶을 때 ④ 밑받침을 tar는cp로 정리한다.
(개인적인 견해니까 추천해 주시면 알려주세요)
terminal
# 抽出したいものをtarでまとめる
>docker exec -i c4 tar -zcvf vol1.tar.gz /vol1
# コンテナからホストにコピー
>docker exec -i c4 ls -la
>docker cp c4:/vol1.tar.gz ./
# コンテナからまとめたtarを削除
>docker exec -i c4 rm /vol1.tar.gz
>docker exec -i c4 ls -la
# 解凍
>tar -zxvf vol1.tar.gz
Reference
이 문제에 관하여(Docker Volume을 정리해 봤습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/osugizmo/items/a952ca6439e648d4cdaa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)