19
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker ライフサイクル 概要図 & 環境複製手順

Last updated at Posted at 2018-01-20

先日初めてDockerに触れ、環境を複製する際に色々調べたのでその内容を共有するため図を作りました。

Docker概要図.png

オプションなど含めた実際利用するコマンド一覧については@voluntasさんの下記の記事がおすすめです。

docker コマンド チートシート

環境複製の手順

環境を1つのサーバーから別サーバーにまるっと複製する場合は、下記手順でうまくいきました。

作業したコンテナからcommitでDockerイメージを作成

$ sudo docker commit <your_container> <your_new_image>

Dockerイメージをsaveでtarファイル化し新環境にコピー

$ sudo docker save -o image_backup.tar <your_new_image>

新環境でtarファイル化されたDockerイメージをloadしDockerイメージ化

$ sudo load -i image_backup.tar

そのDockerイメージからruncreateでContainer生成

$ sudo docker run -it --name <new_container> -p 8000:8000 <your_new_image>

ボリュームを使ってる場合旧環境で*1コマンドを実行しボリュームをtarファイル化

$ sudo docker run --rm --volumes-from <old_container> -v $(pwd):/backup busybox tar cvf /backup/backup.tar <volume_path>

新環境でtarファイル化したボリュームから*2コマンドでリストア

$ sudo docker stop <new_container>
<new_container>
$ sudo docker run --rm --volumes-from <new_container> -v $(pwd):/backup busybox tar xvf /backup/backup.tar

DockerコンテナとDockerボリュームの関係性でつまづきました。コンテナをcommitすればすべてバックアップされるものかと思っていましたが、そうではなくボリュームでマウントされた保存領域はホストOS内で指定したディレクトリで別途バックアップ&リストアが必要な点でした。そしてVolumeをバックアップ&リストアするためのコマンドが特に用意されていない……

そのうちDockerfileやDocker Composeについても調べてまとめたいな。

19
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?