Facebook Pixel
Searching...
日本語
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Docker

Docker

Up & Running: Shipping Reliable Containers in Production
著者 Karl Matthias 2015 230 ページ
3.77
100+ 評価
聞く

つの重要なポイント

1. Dockerはアプリケーションのデプロイとスケーリングを革新する

Dockerは、過去10年間で最も有効な技術の中心に位置しています。

デプロイの簡素化。 Dockerは、開発者がアプリケーションとそのすべての依存関係をコンテナと呼ばれる標準化された単位にパッケージ化することを可能にします。このアプローチはデプロイプロセスを劇的に簡素化し、異なる環境間での一貫性を確保します。

スケーラビリティの向上。 基盤となるインフラストラクチャを抽象化することで、Dockerはアプリケーションを水平に簡単にスケールすることを可能にします。需要に応じてコンテナを迅速に起動または停止でき、リソースの効率的な利用が可能になります。

DevOpsの促進。 Dockerは、開発チームと運用チームの間のギャップを埋める共通の言語とツールセットを提供します。これにより、アプリケーションライフサイクル全体でのコラボレーションとワークフローがスムーズになります。

2. コンテナは軽量でポータブルかつ効率的な仮想化を提供する

コンテナは、すべてのコンテナが単一のカーネルを共有し、その単一のカーネル内で完全に分離が実装されるという根本的に異なるアプローチです。

リソース効率。 コンテナはホストシステムのカーネルを共有するため、従来の仮想マシンよりもはるかに軽量です。これにより、単一のホスト上でのアプリケーションの高密度化と迅速な起動が可能になります。

ポータビリティ。 Dockerコンテナはアプリケーションとその依存関係をカプセル化し、異なる環境間での一貫した動作を保証します。この「一度ビルドしてどこでも実行」アプローチは、開発とデプロイのワークフローを簡素化します。

分離。 仮想マシンと同じレベルの分離を提供するわけではありませんが、コンテナはほとんどのユースケースに対して十分な分離を提供します。Linuxカーネルの機能である名前空間やcgroupsを利用して、アプリケーションのための分離された環境を作成します。

3. Dockerのアーキテクチャ: クライアント、サーバー、レジストリ

Dockerは少なくとも2つの部分から成り立っています: クライアントとサーバー/デーモン(図2-3参照)。オプションで、Dockerイメージとそのメタデータを保存するレジストリという第3のコンポーネントがあります。

クライアント-サーバーモデル。 Dockerはクライアント-サーバーアーキテクチャを使用し、DockerクライアントがDockerデーモンと通信し、コンテナのビルド、実行、配布を処理します。

Dockerレジストリ。 レジストリはDockerイメージを保存し配布するための集中型リポジトリです。Docker HubはDockerが管理する公開レジストリですが、組織はプライベートレジストリを設定することもできます。

コンポーネントの相互作用:

  • Dockerクライアント: Dockerデーモンにコマンドを送信
  • Dockerデーモン: Dockerオブジェクト(イメージ、コンテナ、ネットワーク、ボリューム)を管理
  • Dockerレジストリ: Dockerイメージを保存

4. Dockerイメージとコンテナの構築と管理

コンテナは通常使い捨てとして設計されていますが、標準的なテストではすべての問題を回避できないことがあり、実行中のコンテナをデバッグするためのツールが必要になることがあります。

イメージの作成。 DockerイメージはDockerfileを使用してビルドされ、イメージを作成するための一連の指示が含まれています。各指示は新しいレイヤーを作成し、効率的なストレージとイメージの転送を可能にします。

コンテナのライフサイクル:

  • 作成: docker create
  • 開始: docker start
  • 実行: docker run(作成と開始を組み合わせる)
  • 停止: docker stop
  • 削除: docker rm

デバッグツール:

  • docker logs: コンテナのログを表示
  • docker exec: 実行中のコンテナ内でコマンドを実行
  • docker inspect: Dockerオブジェクトの詳細情報を取得

5. Docker環境におけるネットワークとストレージ

Dockerは未使用のRFC 1918プライベートサブネットブロックからプライベートサブネットを割り当てます。起動時に未使用のネットワークブロックを検出し、仮想ネットワークに割り当てます。

ネットワーキングモデル:

  • ブリッジ: デフォルトのネットワークドライバーで、コンテナ用のプライベートネットワークを作成
  • ホスト: ネットワークの分離を解除し、ホストのネットワークを直接使用
  • オーバーレイ: 複数のDockerホスト間でのコンテナ間通信を可能にする
  • Macvlan: コンテナにMACアドレスを割り当て、ネットワーク上で物理デバイスとして表示

ストレージオプション:

  • ボリューム: 永続データのための推奨メカニズムで、Dockerによって管理
  • バインドマウント: ホストのファイルまたはディレクトリをコンテナにマップ
  • tmpfsマウント: ホストのメモリに一時的にデータを保存

6. Dockerコンテナのデバッグと監視

上記のようにコンテナを停止したいときもありますが、コンテナにしばらく何もさせたくないときもあります。

デバッグ技術:

  • docker logs: コンテナの出力を表示
  • docker exec: 実行中のコンテナ内でコマンドを実行
  • docker inspect: コンテナの詳細情報を取得
  • docker stats: コンテナのリソース使用状況をリアルタイムで監視

監視ツール:

  • cAdvisor: リソース使用量とパフォーマンスデータを提供
  • Prometheus: コンテナからメトリクスを収集し保存
  • Grafana: コンテナのメトリクスを視覚化しダッシュボードを作成

7. オーケストレーションツールでDockerをスケーリング

おそらくこの分野で最初に公開されたツールはCoreOSのFleetで、ホスト上のsystemdと連携して分散型initシステムとして機能します。

オーケストレーションプラットフォーム:

  • Docker Swarm: Dockerのネイティブクラスタリング
  • Kubernetes: オープンソースのコンテナオーケストレーションプラットフォーム
  • Apache Mesos: Dockerコンテナを実行できる分散システムカーネル

主な機能:

  • サービスディスカバリー
  • ロードバランシング
  • スケーリング
  • ローリングアップデート
  • 自己修復

8. Dockerデプロイメントのセキュリティ考慮事項

特権を持って実行されるデーモンであり、アプリケーションを直接制御するため、Dockerをインターネットに直接公開するのは良い考えではありません。

セキュリティのベストプラクティス:

  • 非rootユーザーとしてコンテナを実行
  • 攻撃面を減らすために最小限のベースイメージを使用
  • ネットワークセグメンテーションを実装
  • Dockerとコンテナイメージを定期的に更新およびパッチ適用
  • Docker Content Trustを使用してイメージの署名と検証

セキュリティツール:

  • AppArmor/SELinux: 強制アクセス制御システム
  • Docker Bench Security: 自動セキュリティ評価ツール
  • Clair: コンテナのためのオープンソース脆弱性スキャナー

9. 本番環境対応のDockerプラットフォームの設計

単にDockerを環境にデプロイするのではなく、Dockerの上にうまく設計されたコンテナプラットフォームを構築する時間をかければ、Dockerベースのワークフローの多くの利点を享受しつつ、通常このような高速度プロジェクトに存在する鋭い露出エッジから自分を守ることができます。

重要な考慮事項:

  • 高可用性とフォールトトレランス
  • スケーラビリティとパフォーマンス
  • 監視とログ記録
  • バックアップと災害復旧
  • 継続的インテグレーションとデプロイメント(CI/CD)

ベストプラクティス:

  • 大規模デプロイメントの管理にはオーケストレーションツールを使用
  • 適切なログ記録と監視ソリューションを実装
  • コンテナビルドとデプロイメントのための堅牢なCI/CDパイプラインを開発
  • Dockerインフラストラクチャを定期的にテストし更新

10. コンテナ化されたアプリケーションのためのTwelve-Factor Appメソッド

必須ではありませんが、これら12のステップを念頭に置いて構築されたアプリケーションは、Dockerワークフローに理想的な候補です。

主要な原則:

  1. コードベース: リビジョン管理で追跡された1つのコードベース、多くのデプロイ
  2. 依存関係: 明示的に宣言し、依存関係を分離
  3. 設定: 環境に設定を保存
  4. バッキングサービス: バッキングサービスをアタッチされたリソースとして扱う
  5. ビルド、リリース、実行: ビルドと実行ステージを厳密に分離
  6. プロセス: アプリを1つ以上のステートレスプロセスとして実行
  7. ポートバインディング: ポートバインディングを介してサービスをエクスポート
  8. 並行性: プロセスモデルを介してスケールアウト
  9. 使い捨て性: 高速な起動と優雅なシャットダウンで堅牢性を最大化
  10. 開発/本番のパリティ: 開発、ステージング、本番をできるだけ似せる
  11. ログ: ログをイベントストリームとして扱う
  12. 管理プロセス: 管理/管理タスクを一度限りのプロセスとして実行

Dockerアプリケーションの利点:

  • スケーラビリティと保守性の向上
  • デプロイと運用の容易化
  • クラウドネイティブアーキテクチャとのより良い整合性

最終更新日:

レビュー

3.77 中 5
平均評価 100+ GoodreadsAmazonの評価.

『Docker: Up and Running』は、平均評価が3.77/5で賛否両論の評価を受けている。本書はDockerの基本と高度なトピック、特にセキュリティとデバッグに関する明確な説明が読者に評価されている。多くの人が初心者にとって良い入門書と感じているが、一部の人は内容が古いことや、Dockerの広範なエコシステムについてのカバーが不足していると批判している。簡潔な文章と実践的な例が称賛される一方で、Docker Composeのようなトピックに触れていないことが批判されている。ある読者は内容が基本的すぎると考える一方で、他の読者はDockerの核心概念を理解するための貴重なリソースと見なしている。

Your rating:

著者について

カール・マティアスは、Dockerおよび関連技術に関する著作で知られる経験豊富な著者であり、技術専門家である。具体的な経歴情報は提供されていないが、彼の著書『Docker: Up and Running』から、コンテナ化、DevOps、クラウドコンピューティングに関する広範な知識を持っていることが示唆される。マティアスの執筆スタイルは明確で簡潔であり、実践的な例や現実世界での応用に焦点を当てていると評されている。特にDocker初心者にとって、複雑な技術的概念をわかりやすく説明する彼の能力は読者に評価されている。Dockerのセキュリティや高度なトピックに関する彼の専門知識は、この技術とそのエコシステムに対する深い理解を示している。

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Ratings: Rate books & see your ratings
Unlock Unlimited Listening
🎧 Listen while you drive, walk, run errands, or do other activities
2.8x more books Listening Reading
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Jan 25,
cancel anytime before.
Compare Features Free Pro
Read full text summaries
Summaries are free to read for everyone
Listen to summaries
12,000+ hours of audio
Unlimited Bookmarks
Free users are limited to 10
Unlimited History
Free users are limited to 10
What our users say
30,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →