かべぎわブログ

技術的なことについてかけたらいいな…

Dockerコンテナをexportして別のサーバでimportして動作させる

Dockerコンテナを一旦exportして別のサーバ上でimportして動作させて見たいと思います。
環境が変わってもDockerイメージさえあれば同じ環境がすぐにできあがるよ。
みたいなことを確認してみたいと思います。

docker commit でイメージを作成する

docker commit -a 作成者 コンテナ識別子 イメージ名で指定してあげます。

$ sudo docker commit -a "kabegiwa" 5bc287372e97 wawawa_version

確認する

$ sudo docker inspect wawawa_version | grep -e "Author\|wawawa"
            "wawawa_version:latest"
        "Author": "kabegiwa",

docker export でコンテナをtarファイルにする

docker export コンテナ識別子をリダイレクトしてあげます。

$ sudo docker export 5bc287372e97 > wawawa_docker.tar

確認する

$ ls -l wawawa_docker.tar 
-rw-rw-r-- 1 ec2-user ec2-user 208245248  7月 30 19:57 wawawa_docker.tar

docker import でtarファイルからDockerイメージを作成する

事前準備として今回は別の環境でも動くことを確認したいのでscpでtarファイルをとってくる。

$ scp ec2-user@192.140.1.1:/home/ec2-user/wawawa_docker.tar ./.

docker import tarファイル イメージ名でDockerイメージをimportする

$ sudo docker import wawawa_docker.tar wawawa_version
sha256:d05784c4f35f845aa905357400391e608d7168116ef1b00c5aee3d487dbea922

確認する
まず、イメージの作成は完了した

$ sudo docker images 
REPOSITORY             TAG                 IMAGE ID            CREATED              SIZE
wawawa_version         latest              d05784c4f35f        2 seconds ago        200MB

docker runでもちゃんとうごく。

$ sudo docker run  d05784c4f35f /bin/bash
$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
ea6ff4ffa5dc        d05784c4f35f        "/bin/bash"         9 seconds ago       Exited (0) 8 seconds ago                       sad_bose

おわり。
別環境でも同じコンテナが同じように動いた。

プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化

プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化