Dockerってあれでしょ?なんかスゴイやつ。
レベルの理解だった私がとりあえず本を一冊読み進めつつ其の成果をアウトプットしていく感じで。
こんなクジラの本を購入。購入判断は薄かったから。
Dockerとは?
開発環境では動く、本番環境では動かない
- 割とよくある現象
- gemが足りてない
- apt-get忘れてる
- 1台ならまだしも、複数台だと面倒
- vagrantを使ってVMを作る
- Dockerという別のアプローチ
完全仮想化のデメリット
- 起動が遅い
- メモリ、HDDの消費が大きい
完全仮想のVM自体は悪く無いけれど、手軽さが足りない
Docker = 手軽な仮想化
- ホストのカーネル流用
- 起動が早い
- メモリ、HDDの消費が小さい
- カーネルが違うVMは動かせない
動かしたいアプリケーションだけを含んだimageを使えば、手軽にそのアプリケーションを試せる。キーワードは手軽さ。簡単に作れてすぐ消せる。
Dockerエキスパート養育読本
- 名前にエキスパートとあるけど入門書
- サブタイトルがゼロから始めるDocker入門だし
他にもまだ読んでないけど
がよさ気。特にDocker実践ガイドの方は2015/12にでたばかりっぽくてGood。
いきなり Boot2Dockerはdeprecated
古い本(それでも2014年)を買うとこういうことがしばしばおきます。薄さで選ばないほうがいいですね。
- Boot2Dockerはdeprecated
- 代わりに docker-machine を使えとのこと
brew cask install docker-machine
docker-machine はホストカーネル選択
- Boot2Docker はlocalhostに linux VMを立ててそれを選択していた
- docker-machine はAWSとか他の選択肢もある
MacとかWindowsでBoot2Dockerをインストールするよう書かれているのはLinuxカーネルではないため。Dockerを動かすための最小構成Linuxをvirtualboxで用意してやらないと、これらのOSではそのままではDockerは使えない。
docker-machine create --driver virtualbox default
ホストとして--driver virtualbox、それに名前defaultをつける
docker pull, create, start
- Docker Hubに登録されてるimageをpullして保存
- このimageをもとにコンテナを作る
docker pull hello-world:latest
docker create --name hello hello-world
docker start -i hello
- docker create --name name image_name でコンテナに名前 name をイメージ image_name から作る
- docker start name で実行 -i でSTDINへ
- いらないコンテナはdocker rm
- いらないイメージはdocker rmi
基本操作はこれくらいかな。もう少し読み込んで気分が向いたらその2書きます。