dockerコンテナをバックアップ・保存・ロードしたりする方法

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 < hogehoge.tar – IMAGE_NAME:TAG

#例
docker import < hoda_ubuntu.tar - hoda/centos:latest

 

importしたイメージを起動する時はコマンドを指定する必要があるので注意です。

#例1
docker run -it /Users/hogehoge/hoda_centos.tar /sbin/init

#例2
docker run -it /Users/hogehoge/hoda_ubuntu.tar /bin/bash

 

 

まとめ

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

コメントを残す

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

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください