2016-10-19 3 views
0

私はdocker neo4jデータベースを保存し、再起動してデータを使用します。 最初に私は、私は変更dockerは変更をコミットしますが、エラーを開始します

をコミットするコマンドを実行するのNeo4j

docker run --publish=7474:7474 --publish=7687:7687 --volume=/Users/wangyiran/project/testplatformV6/data/neo4j1 neo4j:3.0 

挿入した後、一部のデータは、私はのNeo4jのcontinerのID 429a3584673b を見つけるために、ドッカpsを使用し 変更をコミットしたい起動するコマンドを実行します。

docker commit 429a3584673b copy 

私はドッキングウィンドウの画像を通じて画像を確認し、コピーが

を終了しますが、私はコピー画像

を再起動したい場合
docker start copy 

レポート

Error response from daemon: No such container: copy Error: failed to start containers: copy

答えて

1

データをコンテナーではなくホストOSのファイルシステムに保存すると、同じボリュームパラメーターでコピーイメージを開始するときにデータが取得されます。

実際には、データのコピーイメージを使用してコピーをコミットして同じデータベースを再起動するだけでも、それを行う必要はありません。ひとつひとつの時間は、あなたがあなたの質問に掲載のコマンドを使用してのNeo4jのイメージを起動します。

docker run --publish=7474:7474 --publish=7687:7687 --volume=/Users/wangyiran/project/testplatformV6/data/neo4j1 neo4j:3.0 

あなたがに/ユーザ/ wangyiran /プロジェクト/ testplatformV6 /データ/ neo4j1格納されたデータを使用して、データベースのコンテナを持っています。それはそうではないなら、あなたのような何かにあなたのドッキングウィンドウrunコマンドを変更する必要があります:--volume /パス/に/ホスト/ディレクトリ:

docker run --publish=7474:7474 --publish=7687:7687 --volume=/Users/wangyiran/project/testplatformV6/data/neo4j1:/var/lib/neo4j/datadirectory neo4j:3.0 

あなたは--volumeとして働くことを知っている必要があります/ path/to/container /ディレクトリに移動します。

注:neo4jのデータディレクトリのパスはわかりませんが、おそらく/ var/lib/neo4j/datadirectoryではありません。それをチェックし、それに応じて最後の "docker run"コマンドを変更する必要があります。

+0

ありがとう、私はこのコマンドを実行ドッカーを実行 - パブリッシュ= 7474:7474 - パブリッシュ= 7687:7687 - ボリューム= /ユーザー/ wangyiran /プロジェクト/ testplatformV6 /データ/ neo4j1:/データneo4j:3.0、それは動作します! –

1

docker commitは新しいイメージとしてコンテナを保存し、それがコンテナのコピーを作成しません。

あなたは、元のrunに似たコマンドを使用して、あなたのイメージから新しいコンテナを起動することができます。

docker run --publish=7474:7474 --publish=7687:7687 --volume=/Users/wangyiran/project/testplatformV6/data/neo4j1 copy 

変化するすべてはあなたがそれを犯したときにcopyをタグ付けされたイメージ名、です。

+0

ありがとうございますが、データを保存するためにコンテナのコピーを作成するにはどうすればよいですか? –

+0

データをコンテナのファイルシステム(つまりボリュームではない)に書き込むと、 'コミットするときには、イメージに保存されます。コミットされたイメージから新しいコンテナを実行すると、保存されたデータが保存されます。コンテナの外にあるボリュームにデータを保存していて、別のコンテナで使用できる場合は、新しいイメージをコミットする必要はありません。 –

+0

thanks.iドッカーを実行しようとする - パブリッシュ= 7474:7474 - パブリッシュ= 7687:7687 neo4j:3。0 'を入力してからデータを変更してから' docker commit 100ab0a5db85 copy2 'を実行してから' docker run --publish = 7475:7474 --publish = 7688:7687 copy2 'を実行しますが、ポート7475、 –

関連する問題