2017年2月2日木曜日

Docker

下記の本を読んで、Dockerを学んでいました。


送料無料/Docker/AdrianMouat/玉川竜司

現在、仮想化技術(VM)により、仮想OSをインストールして使っています。
具体的には、ThinkPadのWindows10に、VMware Workstationをインストールし、そこで、仮想OSとして、ubuntuを構築し、その中で開発しています。
また、サーバーは、VPSを使っています。

”これが、Dockerのコンテナ技術に置き換わるかもしれない。”

読み始めの頃は、そう思い、期待していました。
VMを使っている理由は、
・可搬性
・セキュリティ
です。

ThinkPadが壊れても、仮想OSのバックアップを持っていれば、それを、レッツノートにコピーして、すぐに動かすことができます。
VPSの方は、そこまで簡単ではありませんが、お金があるなら、同じようなことも可能です。

似たような利便性が、Dockerにはあり、仮想OSほど、大規模でない点が気に入りました。
ホームページを公開する場合

・単なる自分の紹介(htmlファイルのみ)
 これならば、レンタルサーバーに、ファイルをコピーするだけです。

もう少し、複雑なサイト。
・会員制のサイト(htmlと、php)
 これなら、少し高価なphpが動くレンタルサーバーにファイルをコピーするのが簡単です。
しかし、phpのプログラムを使うため、レンタルサーバーによっては動かないという事態が発生することがあります。
 原因は、phpや、ライブラリのバージョンの違いなどによるものです。

この問題を解決するため、OSを丸ごと借りるVPSへ移行してきました。
他の手段としては、クラウドサービスで、機能毎に借りて構築するという手段もありますが、費用と手間を考えて、VPSにしています。

VPSを使っていて感じるのは、「OSの管理まではやりたくないのだけど」という思いです。
PHPやライブラリのバージョン管理だけで済めば良いのにと思いますが、そうなると、クラウドサービスを使うことになり、これは、これで、別の管理が必要になります。

Dockerなら、レンタルサーバーと、VPSの中間に位置づけられるように思い、期待して、本を読んでいました。

この点は、やや思い違いのようでした。

私の想像では、Webサーバー(Node.js)と、作成したプログラムがパッケージされたものを、サーバーに公開するというものでした。
そうしたものではないようです。

Dockerで、結果的に同じにするなら、公開サーバー内で、Webサーバー(Node.js)と、作成したプログラムを、再構築するようです。

結果的に同じになるなら悪くはないのですが、再構築させるための手続き記述しなければならないことを考えると、その手間が余計です。

もっとも、今でも、サーバーの構築時は、その手順を書き留めながら行い、再構築時は、その手順を読みながら進めますから、それが、マニュアル化され、コマンド1つで実行できるとなれば、便利ではあります。
しかし、これは、何度も構築するような場合にメリットがあり、ほぼ、1回の構築しか行わないのであれば、手間が増えるだけになってしまいます。

結局、今回は、Dockerを使うことはやめました。
しかし、Dockerには期待しています。
例えば、Node.js、Angular、MongoDBを組み合わせた環境を、楽に用意したいという要望には使えます。
問題は、用意された環境が、どのくらい実用的かは、調べてみなければ分からない点で、事実上の標準ができるまでは、本格的には使いにくいです。

時間が問題を解決してくれるまで待ちます。


次回は、Aureliaについての予定。

0 件のコメント:

コメントを投稿