HEXA BLOG

インフラ

HEXA BLOGその他インフラ2014.4.9

Immutable Infrastracture & Docker

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がっ!

RECRUIT

大阪・東京共にスタッフを募集しています。
特にキャリア採用のプログラマー・アーティストに興味がある方は下のボタンをクリックしてください

RECRUIT SITE