Dockerしてますか?
私は、使い始めて半年くらいでしょうか。
プライベートで立てているサーバや作成したサービスなどをいくつか移行しました。
タマキです。
昨年あたりから「Immutable Infrastracture」という言葉が流行っていますね。
(ココが元ですかね)
『必要になったら新しく環境を構築する。サーバーには変更を加えない。不要になったら廃棄。という運用をすること』となるでしょうか。
例えば、「デプロイ時は、クリーンな状態のサーバに行い、以前の環境は破棄する」など。
この運用を行う方法は多くあるのですが、Dockerもその一つです。
Dockerとは・・一言だと「LXC(Linux Containers)を手軽に扱える仮想化ソフトウェア」でしょうか。
(仮想化技術にはハイバーバイザー型(VMWareやVirtualBoxなど)とコンテナ型がありますが、LXCは後者になります。コンテナを利用したサービスとしてはHerokuなんかは有名ですね。)
いくつか特徴を挙げると、
- 立ち上げが大分早い。ほぼ一瞬。
- バージョン管理の感覚でサーバ構築が行える。
- 構築したサーバイメージを手軽に他の環境に移行可能。
- Dockerfileに記述するので、イメージを共有せずとも、そのソースファイルで同じ環境の構築が可能。
と、大分サーバがポータブルに扱えます。
Dockerの0.9では、新しいExecution driverが導入され、LXCに依存しない形になってるとのこと。
OpenVZ、qemu/kvm, BSD Jails、chrootなどなど。
抽象化が上がりましたね。
環境構築がとても手軽なので、開発・テスト、運営・・・と、いいフローに。
注目していくべきものの一つだなと思います。
最後に、Dockerfileのサンプル(sshサーバ)を。
(「ちょっと、それどうなの?」なものを残してたり??
)
FROM centos:6.5 MAINTAINER Tamaki RUN yum install -y passwd RUN yum install -y openssh RUN yum install -y openssh-server RUN yum install -y openssh-clients RUN yum install -y sudo RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config RUN sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config RUN /etc/init.d/sshd start RUN /etc/init.d/sshd stop RUN echo 'root:docker' |chpasswd RUN useradd hoge RUN echo 'hoge:bar' |chpasswd RUN install -o hoge -m 700 -d /home/hoge/.ssh ADD id_rsa.pub /home/hoge/.ssh/authorized_keys RUN chown hoge /home/hoge/.ssh/authorized_keys; chmod 600 /home/hoge/.ssh/authorized_keys RUN echo "docker ALL=(ALL) ALL" >> /etc/sudoers.d/docker EXPOSE 22 CMD /usr/sbin/sshd -D
そして昨日 0.10.0がっ!
