dev環境で構築したコンテナをそのままstgとprd環境に移行したいと目論んでいます。

というわけで、dockerで作成したコンテナのバックアップを保存したり、別の環境で読み込む方法を試しました。手順をまとめます。

コンテナをバックアップする方法

コンテナをバックアップする方法は2つあります。

docker save を使う方法と、docker export コマンドを使う方法です。

 

 

docker saveでバックアップする場合の手順

次の順にコマンドを実行します。

  1. コンテナをimageに落とし込んで(commit)
  2. imageをtarファイルに圧縮(save)
  3. 別の環境でtarファイルをロード(load)

docker save を使う場合、一旦コンテナをイメージとして保存する必要があります。

 

docker commitでコンテナをイメージに変換

下記コマンドで、指定したコンテナをイメージに変換します。

docker commit YOUR_CONTAINER_ID NAME

#例
docker commit b2d hoda/centos:ver2

 

YOUR_CONTAINER_ID … イメージに変換したいコンテナのID

NAME … イメージにつける名前。好きに決めます。

 

コンテナのIDは docker ps または docker ps -a コマンドで確認します。

 

docker saveでイメージを保存

指定したイメージをtarファイルに圧縮して保存します。

docker save YOUR_CONTAINER_IMAGE(repository:tag) > NAME

#例
docker save hoda/centos:ver2 > hoda_centos.tar

 

YOUR_CONTAINER_IMAGEdocker commit で変換したイメージを「Repository:Tag」の形式で指定します。

NAME … 好きな名前をつけます。

 

RepositoryとTagの情報は docker images コマンドで確認します。

 

docker loadで読み込む

tarファイルの読み込み。これでイメージファイルがリストアされます。

docker load < PATH

#例
docker load < /Users/hogehoge/hoda_centos.tar

 

docker exportでバックアップする場合の手順

docker exportは、docker importと対で使います。

手順は次の通りです。

  1. コンテナをtarファイルに圧縮(export)
  2. 別の環境でtarファイルをインポート(import)

 

docker exportでコンテナを出力

docker export YOUR_CONTAINER_ID > NAME


#例 docker export b2d > hoda_centos.tar

 

 

docker importでコンテナファイルを読み込む

docker import < PATH

 

まとめ

これで全く同じ環境をdev, stg, prdで揃えることができますね〜。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*