ホストOSからコンテナへディレクトリを共有する
- DockerはホストOSのディレクトリをコンテナ側へ見せることが可能になっている
- -vオプションを利用して
-v <ホスト側ディレクトリ>:<コンテナ側ディレクトリ>
とする
docker run -v /root/docker-testdir:/root/docdoc -it --name test0x1 centos:centos6.6 /bin/bash
こんな感じ、ホスト側の/root/docker-testdir
をコンテナ側の/root/docdoc
ディレクトリに割り当てる
- コンテナ側で
/root/docdoc
の中にファイルを作成すると、ホスト側では/root/docker-testdir
の中にコンテナ側で作成したファイルが存在する
- つまりホスト/コンテナ側から読み書きできる状態になっている
書き込み不可でコンテナへディレクトリを共有する
-v <ホスト側ディレクトリ>:<コンテナ側ディレクトリ>:ro
とする
docker inspect <container id> | <container image>
で表示される
- こんな感じで出てくる、
docker inspect
コマンドで色々と情報が取れる
"Mounts": [
{
"Source": "/root/docker-testdir", #コンテナ側ディレクトリ
"Destination": "/root/docdoc", #ホスト側ディレクトリ
"Mode": "", #読み込み専用ならroと表示
"RW": true, #読み書き出来るのでtrueになっている
"Propagation": "rprivate"
}
コンテナ間でのディレクトリの共有
docker run -v /root/dockertest -itd --name test0x4 centos:centos6.6 /bin/bash
これでコンテナtest0x4の/root/dockertest
ディレクトリができる
docker run --volumes-from test0x4 -it --name test0x5 centos:centos6.6 /bin/bash
これでコンテナtest0x5のroot/dockertest
はtest0x4のディレクトリと共有されている
-- --volumes-from <container id>
オプションが必要
-- --volumes-from:ro <container id>
にすると書き込み不可で共有されるが、提供側のコンテナでは読み書きが出来る