質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

6133閲覧

dockerの-vオプションについて

Kimsehwa

総合スコア312

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

1クリップ

投稿2016/01/28 15:51

/app/ディレクトリがRAILSのルートディレクトリでunicorn,rails構成でdockerにデプロイしてます。

unicron起動はsupervisorでやっててunicornのログを/app/tmpディレクトリ配下に出してます。
ここから問題ですが、ホストOSの/tmpディレクトリとコンテナの/appディレクトリを共有したく
docker run -v /tmp/:/app するとなぜかsupervisordで/app/tmp/配下にログが出せないといって起動ができなくなります。(つまり/app/ディレクトリがないといってます。)

それでdocker run -v /tmp:/app /bin/bashでコンテナ中見ると ホストOSの/tmpディレクトリがコンテナの/appディレクトリを上書きしてます。

このような現象になる理由がわかりません。

もしヒントになる原因などがありましたらアドバイスいただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaichiYanagiya

2016/01/29 00:50

やりたいことは、「docker run -v /tmp:/app/tmp」ではないのでしょうか?
guest

回答1

0

ベストアンサー

それでdocker run -v /tmp:/app /bin/bashでコンテナ中見ると ホストOSの/tmpディレクトリがコンテナの/appディレクトリを上書きしてます。

これが期待通りの動作となります。docker run の bind mount (-v /host/dir:/docker/dir) は、ホスト側のディレクトリをコンテナ側のディレクトリにマウントします(つまり、Kimsehwaさんが 前の質問 で言っていたとおりの理解で合ってます)。そのため、元々コンテナ側のマウント先のディレクトリ内にあったファイルやディレクトリは、隠れて見えなくなります。

私の知る限りでは、逆方向(コンテナ側 → ホスト側)にマウントする方法はありません。

ではどうやって、Docker イメージに元々あったディレクトリ(の内容)を、docker run の時に共有するかですが、今のところは、以下のようにするしかなさそうです:

  1. docker run -v /tmp/container1-app:/shared-app などとして、ホスト側のディレクトリを、コンテナ側の /app/ とは 別の ディレクトリ /shared-app/ にマウントする。
  2. コンテナ内で mv /app/* /shared-app/(または、cp -rp /app/* /shared-app/)を実行し、共有したいディレクトリの内容を、マウントされたディレクトリに移動(または、コピー)する。
  3. 使い終わった後(コンテナを削除した後)も、ホスト側の /tmp/container1-app/ の中身は残るので、不要ならホスト側で削除する。

投稿2016/01/29 00:49

tatsuya6502

総合スコア2035

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kimsehwa

2016/02/01 06:15

回答ありがとうございます。 -v a:bだと上書きされるのは仕様ですね -v bにして docker inspect --format='{{range .Mounts}}{{println .Source}}{{end}}' コンテナー名   して出たディレクトリにアクセスするとdocker内のデータをマウントすることができました。 とりあえずはこのやり方で進めてみようと思います。
tatsuya6502

2016/02/01 06:34

なるほど、その手がありましたか。勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問