38
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

Docker初心者による、初心者のためのDocker入門 #1

El Capitan + Docker 1.12.0-rc4-beta20 で試しています。
とはいえpublic betaな Mac Dockerは今ガンガンバージョンがあがっているのですぐ変わります。

Mac版Dockerのpublic betaも出たことだし、いい加減重い腰をあげてちょっと触ってみるか。。と思ったらVagrantみたいに起動している間に腹筋でもするか〜...とか待つ必要もなく、あっという間にapache + PHP のコンテナが立ち上がって捨てるのも複製するのも簡単...ってレボリューション!、むしろこれは知らないとやばいレベルだ...と衝撃を受けたので本格的に入門してみようと思い立った記録です。続きます。たぶん。

QiitaやWEBの知識のみで始めてもいいんですが、完全に初心者なのである程度は体系だった知識を得た方がいいだろうということで、教科書はこれ。

WEB+DB PRESS Vol.86

Screen Shot 2016-07-20 at 16.30.43.png

ここでも買えます。
http://gihyo.jp/magazine/wdpress/archive/2015/vol86

ちょいと古いですがめっちゃ役にたちました。
とくに勉強になるなー、と初心者ゴコロにぐっときたポイントを抜粋

Dockerを活かすための原則

1コンテナ1プロセスを保つ

たとえばRailsとnginxを同一コンテナで動かしちゃうと、ngixだけリスタートしたい場合にコンテナごと再起動することができなくなってしまう。= 手順が複雑化してしまう。コンテナも複雑化しちゃう、とのこと。複雑なことは排除してなるべくシンプルに保つ。なるほど〜。

できる限り全てをコンテナで行う

逆にいえばホストOSには極力インストールしない。インストールしなければアップデートも必要なくなる。コンテナならば、新しいバージョンのものを用意してすぐ既存のコンテナとすぐ交換、ダメならすぐ戻せるけど、ホストOSとなればそうもいかない。だからそもそもインストールしない。なるほど〜

Dockerfileをそのまま使う

docker commit等で専用イメージを作っちゃうと、コンテナの作成手順が明示的ではなくなる。
そしてChefやPuppetよりDockerfileの記述の方がシンプル。本当かな?でも教科書が言うのだからきっとそうなのだろう。
よし当面方針としてDockerfileいっぽんに絞ろう。なによりインストールするものも、学習するものも、少なくて済むのは良いことだ。

ためしに nginxを起動してみる

本家を参考にしてみる。

Getting Started with Docker for Mac
https://docs.docker.com/docker-for-mac/

そのまんま試してみる。

  • まずDocker for Macをダウンロードする
  • インストールする
  • ターミナルを起動してコマンド実行
docker run -d -p 80:80 --name webserver nginx
  • localhostにアクセスする

Screen Shot 2016-07-20 at 17.01.36.png

  • コンテナを終了させる
docker ps       # CONTAINER IDを確認する
docker kill CONTAINER ID    # 実際はCONTAINER IDの先頭3文字くらいでOK

なんて簡単なんだーーーーー!

以上

次回は、Dockerで apache + PHPを起動する の予定

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
38
Help us understand the problem. What are the problem?