0

そのため、アップロード以外のすべてのファイルが永続化されるように、WordPress イメージをパッケージ化しようとしています。そのために、公式の WordPress イメージをベースとして使用し、アーカイブ (すべての WordPress ファイル、テーマ、プラグインなどを含む) からファイルを追加する Dockerfile を作成しました。

FROM wordpress

ADD archive.tar.gz /var/www/html/

アップロードを永続化したいので、別のデータ ボリューム コンテナーを作成しましたtest2.com-wp-data

docker create -v /var/www/html/wp-content/uploads —name test2.com-wp-data wordpress

—-volumes-from次に、フラグを介してマウントします。

docker run —name test2.com --volumes-from test2.com-wp-data -d --link test2.com-mysql:mysql myimage

ただし、新しく作成したコンテナーを調べると、次のものが見つかりません/var/www/html/wp-content/uploads

# docker inspect -f '{{.HostConfig.VolumesFrom}}' test2.com
[test2.com-wp-data]    

# docker inspect -f '{{.Volumes}}' test2.com
map[/var/www/html:/var/lib/docker/vfs/dir/4fff1d36d5aacd0b2c73977acf8fe680bda6fd891f2c4410a90f6c2dca4aaedf]

/var/www/htmlとの両方がデータ コンテナー内/var/www/html/wp-content/uploadsのボリュームとして設定されていることがわかります。test2.com-wp-data

# docker inspect -f '{{.Config.Volumes}}' test2.com-wp-data
map[/var/www/html:map[] /var/www/html/wp-content/uploads:map[]]

wordpressイメージがデフォルトでボリュームを作成することは知っていますが、/var/www/htmlそれはあまり気にしませんが、個別にマウントすると、そのフォルダーの下にあるものはすべて無視されるということですか? /var/www/html/wp-content/uploadsWordPress コンテナーでボリュームとして設定するには、独自の WordPress イメージを作成する必要がありますか?

お時間をいただきありがとうございました!

編集: とは関係のないフォルダーで別のセットアップをテストしましたが/var/www/html、結果は同じです:—-volumes-fromは無視されます。

4

2 に答える 2

1

これを機能させるには、docker のバージョン 1.4 以降が必要です。古いバージョンの docker は、「実行」ではなく「作成」でインスタンス化されたデータのみのコンテナーではうまく動作しないようです。

于 2015-03-19T13:21:32.377 に答える
0

さて、さらにテストを重ねた結果、ドキュメンテーションが示していることにもかかわらず、それdocker createだけでは作業データ ボリュームを機能させるには不十分であることがわかりました。docker run次のように、コマンドを使用してデータ ボリュームをインスタンス化することによってのみ、作業データ ボリュームを取得できました。

docker run —-name data -v /var/www/html/wp-content/uploads mysql true

このようにコンテナはすぐに終了しますが、それを使用してデータ ボリュームを別のコンテナにアタッチすると、期待どおりに機能します。

この動作の背後にある特定の理由を誰かが知っている場合は、特にドキュメントが誤解を招くように見えるため、詳細を教えていただければ幸いです。

ありがとう!

編集: Docker 1.3.x を使用していたことが判明しましたが、これはこの機能をまだ実装していないため、ドキュメントが誤解を招く理由です!

于 2015-03-19T00:50:16.800 に答える