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サーバ)を。

(「ちょっと、それどうなの?」なものを残してたり?? )

  1. FROM centos:6.5
  2. MAINTAINER Tamaki
  3.  
  4. RUN yum install -y passwd
  5. RUN yum install -y openssh
  6. RUN yum install -y openssh-server
  7. RUN yum install -y openssh-clients
  8. RUN yum install -y sudo
  9.  
  10. RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
  11. RUN sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config
  12. RUN /etc/init.d/sshd start
  13. RUN /etc/init.d/sshd stop
  14.  
  15. RUN echo 'root:docker' |chpasswd
  16.  
  17. RUN useradd hoge
  18. RUN echo 'hoge:bar' |chpasswd
  19. RUN install -o hoge -m 700 -d /home/hoge/.ssh
  20.  
  21. ADD id_rsa.pub /home/hoge/.ssh/authorized_keys
  22. RUN chown hoge /home/hoge/.ssh/authorized_keys; chmod 600 /home/hoge/.ssh/authorized_keys
  23.  
  24. RUN echo "docker ALL=(ALL) ALL" >> /etc/sudoers.d/docker
  25.  
  26. EXPOSE 22
  27. CMD /usr/sbin/sshd -D

そして昨日 0.10.0がっ!

RECRUIT

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

RECRUIT SITE 

S