Skip to content

Instantly share code, notes, and snippets.

@mhagiwara
Created March 9, 2018 15:01
Show Gist options
  • Save mhagiwara/01a6783f976e5dd26ab3121474062dc3 to your computer and use it in GitHub Desktop.
Save mhagiwara/01a6783f976e5dd26ab3121474062dc3 to your computer and use it in GitHub Desktop.
## MEMO: Introduction to Docker
https://www.youtube.com/watch?v=Q5POuMHxW-0
- docker (dotCloud - platform as a service, Heroku の競合)
- サーバーにコードを出荷するのが難しい → 簡単であるべき!
- 昔 サーバー+LAMP 、現在はもっと複雑(異なる言語、構成、プラットフォーム)
- 各コンポーネント x プラットフォームのマトリックス 全ての組み合わせでテストが通り、期待通り動く
- 昔、同様の問題に着想 → 運搬する物 x 物の種類 のマトリックスに似ている → コンテナ!
- 開発者 → docker (標準コンテナフォーマット) → Ops (運用)
- VM ← ... → バイナリ、JAR、Python パッケージ
- 例:JAR → どうやって扱うか分かっている。他の部分が全て整っているのが前提。特定のバージョンに依存する場合は?
- 例:VM → マシン全体を出荷。大きい、オーバーヘッド。10個コンポーネントがあれば10個の VM が必要
- Linux のカーネルの進化によって、プロセスをサンドボックス内で動かすことができる
- デモ
- docker ps (プロセス)
- docker run
- docker commit → 現在の情報を保存
- docker push → images.docker.io にアップロード
- Ubuntu のファイルシステム全体なのになぜ速いか?
- 差分だけを保持しているから copy-on-writes
- 100台のサーバーに出荷
- diff だけを送る
- ほとんどの場合、アプリケーション層だけ
- -p → ポートをデフォルトで開ける ホストのポートにマッピング
- ZooKeeper などを置き換えるものではない ネットワーク越しに通信しない
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment