2016-07-09 fukutech #06
うなすけ
2016-06-12 のDentoo.LT #14にて話しました
2:32:50あたりから語彙がなくなる
今のうちにDockerをインストールしておいてください
https://www.docker.com/products/docker
( http://bit.ly/29nClmD )
コンテナ型仮想化技術を用いた仮想化ソフトウェア
みんなだいすきVirtualBox
GNU GPL v2 https://commons.wikimedia.org/wiki/File:Virtualbox_logo.png
VirtualBoxはOSの中にまたOSがドンという感じ
Dockerは実行するプログラムだけ隔離される感じ
VirtualBoxはWinやMacでも動くけど
DockerはLinux上でしか動かせない
(語弊あり)
たとえばRuby on Railsを動かしたいとして
$ sudo apt install ruby mysql nginx
$ wget railsのコード
$ mysqlやnginxやらの設定
$ portあけたりなんだり
$ dbのmigrateとか
ubuntuだとして
さっきの環境設定一からやりなおし?!?!
サーバーの状態をコードで管理する
chef, puppet, Ansible, itamae, Terraformなどなど
かくして平和が訪れた……
サーバーの状態をコードで管理する
chef, puppet, Ansible, itamae, Terraformなどなど
かくして平和が訪れた……
えっ、サーバー用意すんの10分ほどかかるんですけど……
サーバーで作業しちゃったけど、インフラ定義コード変更しないとなぁ……
Immutable Infrastructure(不変のインフラ)ができあがる
$ docker run hello-world
Dockerfileをbuildしてできあがるもの。さっきから言っている「コンテナ」と考えることができる。
docker imageの設計図。これに従ってdocker imageをつくる。
Infrastructure as Codeの部分にあたる
Dockerfileからimageを作るときには
ファイルのコピーなどが発生するため
imageはどこでも作る事はできない
が、imageはどこでも実行することができる。
ソースコード ≠ コンパイルしたバイナリ
https://github.com/unasuke/fukuitech-06-demo
$ docker run -p 3000:3000 unasuke/fukuitech-06-demo
ブラウザでhttp://localhost:3000
にアクセス
index.html
を編集するdocker build
するdocker run
する詳しくはREADMEを!!
HTTPサーバーであるH2Oを動作させるためにdockerを使っている
$ docker run -p 80:80 -p 443:443 -v /path/to/doc/root unasuke-com-server