2016-11-08 10 views
0

システムにMySQL Dockerイメージをインストールし、コンテナを設定して起動し、2GB以上のbz2圧縮サイズのデータ​​ベースをインポートしました。私はコンテナ全体を梱包し、別のシステムに移したいと思います。Dockerコンテナ/イメージ全体をエクスポート/保存する方法

実行中のコンテナを停止してエクスポートを実行すると、118 MBのtar.bzファイルしか生成されません。

コンテナをイメージにコミットして保存すると、118MBのtar.bzファイルしか作成されません。

MySQLデータを含むコンテナ全体をエクスポート/保存する方法は何ですか? MySQLの画像は383.4MBで、私の変更された画像も同じです。


私はいくつかの道を見つけた:How can I backup a Docker-container with its data-volumes?


追加:現在、私はUbuntu Linuxの風味を使用しています。

+0

標準のMySQLイメージを使用していますか?もしそうなら、ボリュームをコンテナの外のものにマップすることになりましたか? – R0MANARMY

+0

私は標準のMySQLパッケージから始めました。mysqld.cnfの設定を1つだけ変更して、保存したDBをインポートできます。私はボリュームマッピング自体について設定をしていません、Hy Lの答えは良く見えます、私はすぐにそれをチェックします。 –

+0

[cp](https://docs.docker.com/engine/reference/commandline/cp/)コマンドも見ていきます。私はホストからデータをコピーするかどうか確認しようとしていません – R0MANARMY

答えて

1
  1. あなたのコンテナに一致するデータが格納されている検索(sudoのユーザーとして、あなたがの/ var/libに/ドッキングウィンドウ/ボリューム/ {container_id}、は/ var/libに/ドッキングウィンドウ/ VFS /ディレクトリを/にアクセスすることができます{container_id})

  2. コンテナと一緒にデータを実行したい場所に移動します。

  3. コンテナを起動するときにボリュームマッピングを使用すると、より多くの制御を行うことができます。以下は

知識があなたのために役立つことができます:

Aドッカーボリューム許可データは、ブートボリュームの外(ただし、ルートファイルシステム内の)容器にを格納する

コンテナは、「-v」スイッチパラメータ(たとえば、/ dockerdata)に渡される共有名を指定することで、1つ以上のボリュームで作成できます。これは、ボリュームの内容を表すDocker設定フォルダ(/ var/lib/docker)内にエンティティを作成するという効果があります。

/var/lib/docker/volumesフォルダには、ボリュームの構成データが格納されます。各サブディレクトリには、UUIDに基づくボリューム名が表示されます。データそのものは、/var/lib/docker/vfs/dirフォルダに格納されています(これもUUID名に基づいています)。任意のボリュームに

データは自由に閲覧し、ホストオペレーティングシステム、及び標準UNIXアクセス権によって編集することができる当てはまります。

ボリュームの使用には長所と短所があります。データは標準のファイルシステムに保存されるため、オペレーティングシステムによってバックアップ、コピー、または移動や移動が可能です。

ここではです。ボリューム名はUUID形式であり、コンテナ名と関連付けるのは難しいことです。Dockerは、 "docker cp"コマンドを提供することで、コンテナ名を指定することによって、ホストディレクトリからコンテナディレクトリパスにファイルとフォルダをコピーすることができます。

ドッカーボリュームは、ホストディレクトリに関連付けることもできます。これは、 "-v/host:/ container"のように、コロンでホストとコンテナのパスを区切る形式を使用して、 "-v"スイッチで再度指定されます。このメソッドを使用すると、ホスト上の永続データにコンテナがアクセスできるようになります。

したがって、ボリュームオプションを使用して外部ストレージに作成されたホスト共有にアクセスすることで、NFS共有またはLUN上の外部共有ストレージにアクセスすることができます。このメソッドは、コンテナによってアクセスされるデータのバックアップにも使用できます。

関連する問題