新刊
同人誌・52ページ・100部頒布・紙/電子・500円Dockerコンテナの中で、なんでデーモンとかcronが動かないの?
軽いっていうけど、なんで軽いの? RHELの上で、なんでUbuntuが動くの?!
マウントの意味、ポート公開の意味とは? 作っては捨てるはいいけど、データどうすんの?
など、Dockerを使ってはいるものの、中身がどうなってるかわからなくて、もぞもぞする人に送る本です。
Dockerの本質は「コンテナのなかで1つのプロセスを隔離して動かすこと」。
仕組みの解説とともに、実務での使い方について説明します。
【目次】
第1章 Dockerのおさらい
1-1 コンテナはイメージから起動する
イメージはレジストリにある
Apacheを例にDockerを知る
1-2 コンテナの隔離
コンテナは独自のファイルシステム、IPアドレスを持つ
穴を空けて操作する
コンテナが実行するプログラムは、ただ1つ
隔離されたプロセスを1つ実行するだけだから軽量
1-3 停止、再開、破壊の状態遷移が大事
起動と開始の区別
コンテナIDでコンテナを特定
コンテナの再開で再実行できる
破棄するとデータが消える
1-4 永続化がしないとデータが消える
残しておきたい部分をマウントして外に出す
バインドマウントとボリュームマウントの使い分け
コンテナは壊してアップデートする
1-5 Dockerコンテナの慣例
設定の受け渡し
ログは標準出力に吐
1-6 まとめ
第2章 本番での運用とイメージの作り方
2-1 理想的なコンテナイメージ
コンテナイメージ作りの流れ
イメージの保存と読み込み
ライブラリなどのインストール
プロセスIDの1番として実行するコマンド
2-2 コンテナイメージ作りのポイント
どのコンテナイメージで作るか
開発したプログラムをコンテナに入れる必要があるのか
バインドするディレクトリをまとめる
利用するバージョンを明示する
2-3 現場におけるコンテナ作り
素のLinuxが欲しい
少しずつ作って調整していく
作ったコンテナをそのままイメージ化
2-4 docker execでメンテナンスする
docker execを使う場面
起動中のコンテナにしか実行できない
2-5 1プロセスしか実行できない問題
1コンテナ=1プロセスが基本
cronによる定期実行処理
supervisordを既定のプロセスとする
ApacheとMySQLを同じコンテナに入れることもできる
2-6 まとめ
第3章 コンテナについてのFAQ
起動中のコンテナを、そのまま別のコンピュータに移行したい
ボリュームの割り当てや公開ポートの設定を変更したい
コンテナのイメージはどこにあるの?
ドメインごとに接続先を変更するWebサーバーを作りたい
WindowsのDockerが遅い