2016-08-18 13 views
0

私はJenkinsを使用してSQLLightデータベースを使用してドッキング・イメージを構築しています。私はDockerfileからデータベースを構築し、別々にボリュームをエクスポートできるようにボリュームに格納したいと考えています。私はとしてビルドを開始します。docker build -t FOO .が、私は、ボリュームデータを抽出するために午前とき:新しく構築されたイメージからドッカーボリュームを取得するには?

docker run --rm --volumes-from FOO -v $(pwd):/backup busybox tar cvf /backup/backup.tar /opt/webapp` 

私はエラーを取得する:FOOは、それは画像のコンテナではありませんので、当然のNo such container: FOO

これは理にかなっています。しかし、どのようにしてコンテナ識別子を取得できますか?私はJockkinsのビルドでこれを実行しているので、Dockerが出力するものは何でも読むことができません。

私はこれについて間違った方向に向かっていると感じています。しかし、正しい方法は何ですか?

docker run -d --name BAR FOO 

そしてあなたがボリュームにアクセスすることができます:

docker run --rm --volumes-from BAR ... 
+0

このイメージのコンテナによって生成されたイメージまたはデータを抽出しますか? – CMPS

+0

Dockerfileで生成されたボリュームのデータを抽出したい – jonalv

答えて

1

その容器に入れます(--entrypoint /bin/shを使用して変更されている場合は、/ bin/shのようなエントリポイントに変更してください)。

docker run --rm -v $(pwd):/backup FOO tar cvf /backup/backup.tar /opt/webapp 

また、バックアップを別のコンテナ(例:バックアップユーティリティは含まれていません)、FOOコンテナを作成して実行する必要はありません。

docker create --name foo-vol FOO 
docker run --rm --volumes-from foo-vol -v $(pwd):/backup \ 
    busybox tar cvf /backup/backup.tar /opt/webapp 
docker rm -v foo-vol 
+0

私は 'docker stop BAR'もやるべきだと思います。コンテナを起動してすぐに停止するのが面倒です。 – jonalv

+0

コンテナによって異なります。長い実行プロセスがない場合、コンテナは直ちに停止されます。 – Martin

1

は、バックアップにしたいコンテナを実行し、直接バックアップを行う必要がFOO画像に基づいて、コンテナを実行する必要が

関連する問題