dockerがどのくらいできるのか試してみました。
VPSなどは年々スペックがインフレするので時々契約を変更したくなりますが動いているものがあると移動できなかったりします。
これらができるとサーバー会社を移動したり、アクティブ率の下がったアプリケーションをスペックの低いサーバに移動したりと使いどころが多いですよね。
今回試したのはサーバー会社とディストリビューションの両方が違う環境です。
動かしているのは個人用のowncloudになります。
環境は以下
サーバー会社 | ホスト OS | コンテナ OS |
---|---|---|
さくらのクラウド | ubuntu 12.04 (64-bit) | ubuntu 13.04 (64-bit) |
Amazon | Amazon Linux AMI (64-bit) |
まずは動いている状態のdockerからコンテナをエクスポートします。
docker psは以下のような状態
エクスポートコマンドを実行します。
sudo docker export 8a0cf0655e89 > img.tar
しばらくまつと何も言わず完了してカレントディレクトリにimg.tarができ上がっていますのでこれをscpなどでAWSに転送します。
転送が終わったら今度はAWSのdockerにインポートします。
[jessie:test]はインポートし終わったときのREPOSITORYとTAGになります。
cat img.tar |sudo docker import - jessie:test
これで動作させる準備が整いました。
docker runコマンドで動作させます。
この時、Dockerfileを使って構築した時に指定したCMDがなくなってしまうようなので以下のようにコマンドを指定する必要がありました。
[-p 80:80]を指定してポートがフォワーディングされるようにしています。(httpでない場合は不要です)
sudo docker run -p 80:80 -d jessie:test /usr/sbin/apache2ctl -D FOREGROUND
以上で会社の移動が無事できました。
逆にAWSからさくらのクラウドなどの移動もスムーズにできると思います。
バックアップや他社VPSへの移動なども簡単にできるようになるので使わない手は無いですね。
では!