278
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

dockerを使って動作中のサーバーをホスティング会社間で移動する

dockerがどのくらいできるのか試してみました。
VPSなどは年々スペックがインフレするので時々契約を変更したくなりますが動いているものがあると移動できなかったりします。
これらができるとサーバー会社を移動したり、アクティブ率の下がったアプリケーションをスペックの低いサーバに移動したりと使いどころが多いですよね。

今回試したのはサーバー会社とディストリビューションの両方が違う環境です。

動かしているのは個人用のowncloudになります。
環境は以下

サーバー会社 ホスト OS コンテナ OS
さくらのクラウド ubuntu 12.04 (64-bit) ubuntu 13.04 (64-bit)
Amazon Amazon Linux AMI (64-bit)

まずは動いている状態のdockerからコンテナをエクスポートします。

docker psは以下のような状態

Screenshot_from_2014-04-23 23:16:39.png

エクスポートコマンドを実行します。

command
sudo docker export 8a0cf0655e89 > img.tar

しばらくまつと何も言わず完了してカレントディレクトリにimg.tarができ上がっていますのでこれをscpなどでAWSに転送します。

転送が終わったら今度はAWSのdockerにインポートします。
[jessie:test]はインポートし終わったときのREPOSITORYとTAGになります。

command
cat img.tar |sudo  docker import - jessie:test

これで動作させる準備が整いました。
docker runコマンドで動作させます。
この時、Dockerfileを使って構築した時に指定したCMDがなくなってしまうようなので以下のようにコマンドを指定する必要がありました。
[-p 80:80]を指定してポートがフォワーディングされるようにしています。(httpでない場合は不要です)

command
sudo docker run -p 80:80 -d jessie:test /usr/sbin/apache2ctl -D FOREGROUND

以上で会社の移動が無事できました。
逆にAWSからさくらのクラウドなどの移動もスムーズにできると思います。

バックアップや他社VPSへの移動なども簡単にできるようになるので使わない手は無いですね。

では!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
278
Help us understand the problem. What are the problem?