にモンゴドッカーコンテナを復元するために、私ははどのようにMacの
docker rm myMongoDB
私のmongoコンテナを削除私はすべてのデータを失うか、または私はそれを復元することができますか?もしそうなら、どうですか?
私はExited (2) 8 seconds ago
を、それが実行されず、その状態が言う画像
docker run -p 27017:27017 -d mongo --name myMongo2
から別の容器を実行してみてください。
にモンゴドッカーコンテナを復元するために、私ははどのようにMacの
docker rm myMongoDB
私のmongoコンテナを削除私はすべてのデータを失うか、または私はそれを復元することができますか?もしそうなら、どうですか?
私はExited (2) 8 seconds ago
を、それが実行されず、その状態が言う画像
docker run -p 27017:27017 -d mongo --name myMongo2
から別の容器を実行してみてください。
Docker Hub(https://hub.docker.com/_/mongo/)の公式mongo
では、データを格納するための2つのボリュームが定義されています(in the Dockerfile)。コンテナの実行時に明示的に-v
/--volume
オプションを指定しなかった場合、ドッカーはこれらの匿名(無名の)ボリュームを作成し、それらのボリュームはまだ前後になることがあります。名前がないため、最後にどのボリュームがコンテナで使用されたかを見つけるのは少し難しいかもしれません。
docker volume ls
これはあなたにこのようなものを与えるはずです。
DRIVER VOLUME NAME
local 9142c58ad5ac6d6e40ccd84096605f5393bf44ab7b5fe51edfa23cd1f8e13e4b
local 4ac8e34c11ac7955b9b79af10c113b870edd0869889d1005ee17e98e7c6c05f1
local da0b4a7a00c4b60c492599dabe1dbc501113ae4b2dd1811527384a5dc26cab13
local 81a40483ae00d72dcfa2117b3ae40f3fe79038544253e60b85a8d0efc8f3d139
ボリューム内の内容を確認するには、一時的なコンテナに添付して、そこにあるものを確認できます。例えば;ボリューム81a40483ae00d72dcfa2117b3ae40f3fe79038544253e60b85a8d0efc8f3d139
と、新しいUbuntuの容器にインタラクティブシェルを開始する
docker run -it -v 81a40483ae00d72dcfa2117b3ae40f3fe79038544253e60b85a8d0efc8f3d139:/volume-data ubuntu
は、容器内部/volume-data/
に取り付けられています。
あなたは、そのディレクトリに移動し、それはあなたが探しているボリュームだかどうかを確認することができます:あなたは(Dockerfileによると、モンゴの画像は2を使用しています)どのボリューム識別一度
[email protected]:/# cd /volume-data/
[email protected]:/volume-data# ls -la
、あなたは新しいmongoコンテナを起動し、それらのボリュームをマウントすることができます。
docker run -d --name mymongo \
-v 4ac8e34c11ac7955b9b79af10c113b870edd0869889d1005ee17e98e7c6c05f1:/data/db/ \
-v da0b4a7a00c4b60c492599dabe1dbc501113ae4b2dd1811527384a5dc26cab13:/data/configdb/ \
mongo
私は本当にあなたがあなたのデータを失うことを防止するためにドッカーハブ上のmongo画像のドキュメントでWhere to Store Dataセクションを読むことをお勧め。私はまた、あなたの最後のコマンドが後の画像名を--name myMongo2
を置くことに注意
NOTE
。 の前に、mongo
(イメージ名)にする必要があります。またmyMongo2
は無効なコンテナ名です。大文字を使用できないためです。
「データの保存場所」セクションにはOS X用の警告があり、データディレクトリをホストにマップしてMongoDBコンテナを実行することはできません。知っておいてよかった!とにかく、私のデータは '/ data/...'ディレクトリ(-ies)になければなりません。しかし、私は '/ data /'ディレクトリを持っていません。私が最近OS Xをエルキャピタンにアップグレードしたとき、それは一掃されただろうか? – Ferenc
また、Dockerに 'docker volume ls'コマンドがありません。 'docker: 'volume'はドッカーのコマンドではありません。' 'volume'が新しいコマンドの場合は、Docker 1.8.1を使用しています。 – Ferenc
Dockerの古いバージョンを実行しているようです。ドッカーツールボックスの最新バージョンはhttps://github.com/docker/toolbox/releasesにあります。ホストディレクトリのマッピングに関する多くの問題を解決するhttps://blog.docker.com/2016/03/docker-for-mac-windows-beta/に興味があります – thaJeztah
あなたのコンテナは 'volume'を使用する場合は、可能性の高いデータは、あなたのマシン上でまだ使用可能です。 http://stackoverflow.com/questions/26009619/how-to-retrieve-volume-from-a-removed-docker-containerを参照してください。何かがうまくいかない場合に備えて、何かをする前にフォルダをバックアップしてください。 –
@warmoverflow私はstackoverflowのエントリを見ていましたが、 '/ var/lib/docker'ディレクトリはありません。前回のmongodbを使用して以来、またはLinuxではなくMacであることから、私がEl Capitanにアップグレードしたためかどうかはわかりません。 – Ferenc
@thaJeztahは良い答えを提供しました。Mac OS Xを使用しているので、Docker Toolboxを使用しています。 '/ var/lib/docker'フォルダは' docker-machine ssh default 'を使ってログインできるdocker toolbox vmの中にあります。 –