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

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

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

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

Q&A

1回答

2627閲覧

データボリュームコンテナ内でファイルをADDした場合の挙動

Auxo

総合スコア34

Docker

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

0グッド

0クリップ

投稿2017/12/22 04:10

dockerにてアプリケーションの実行環境として「app」コンテナを作成、そのソースファイルが含まれる「app-data」コンテナを作成し、このコンテナをデータボリュームコンテナとして「app」コンテナから利用する事を考えていますが、上手くいきません。

「app-data」コンテナのDockerfileは以下のようなものです。

FROM busybox RUN mkdir -p /home/examples ADD example.tar.gz /home/examples

「app-data」コンテナ内を確認すると、確かに「/home/examples」配下に「example」ディレクトリが存在し、ファイルが展開されています。

しかし、これを「app」コンテナから利用する為に、以下のように「app」コンテナを起動させると、「/home/examples/example」ディレクトリは存在しません。

docker run -d -p 80:80 --volumes-from app-data --name "app" app

なお「app」コンテナはCentOS7にApacheが導入されているだけのものです。

データボリュームコンテナと言われるものでは、特定のVOLUME(ホスト側ディレクトリのマウント含む)を使う場合のみ使用でき、このようにADDのような形で操作されたコンテナは利用できないのでしょうか?

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

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

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

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

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

guest

回答1

0

--volumes-from は指定したコンテナのボリューム領域(DockerfileのVOLUMEで定義)を読み込むためのコマンドです。実現されたいのは /home/examplesapp コンテナからの参照であれば、Dockerfile は次のように構築されてはいかがでしょうか。

FROM busybox VOLUME /home/examples ADD example.tar.gz /home/examples

こうして VOLUME 命令によって作成されたディレクトリは、他のコンテナからも参照可能となります。

なお、データボリュームコンテナを作り参照する使い方は、最近の公式ドキュメントでは積極的に推奨されていません。 docker volume create example コマンドでボリューム領域を作成し、作成したボリュームを docker run -it -v examples:/home/examples app のようにされたほうが良いかもしれません。

投稿2017/12/28 04:21

zembutsu

総合スコア1584

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

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

Auxo

2017/12/29 05:48

ご回答ありがとうございます。 直接該当のコンテナにADDでソースを配置する方法は既に試し済みです。 データボリュームコンテナとしての利用は方法が限定される(ホストのディレクトリをマウントする方法のみ)という事で理解いたしました。 ご返信ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問