|
1. Docker を使用する理由 Dockerは、開発されたアプリケーションのコンテナへのデプロイを自動化するオープンソースエンジンです。Docker Inc.チームによって開発され、Apache 2.0オープンソースライセンスの下でライセンスされています。シンプルで軽量なモデリングアプローチを提供することで、開発ライフサイクルの効率化と高速化を実現し、サービス指向アーキテクチャ設計を促進します。Dockerプロジェクトの目標は、軽量なオペレーティングシステム仮想化ソリューションを実現することです。Dockerは、Linux Containers (LXC)などの技術を基盤としています。DockerはLXCをさらにカプセル化することで、ユーザーがコンテナ管理を煩わされることなく、運用を大幅に簡素化します。Dockerコンテナの操作は、高速で軽量な仮想マシンの操作と同じくらい簡単です。 Docker の機能: 1. より迅速な配信と展開 2. より効率的な仮想化 3. 移行と拡張が容易 4. よりシンプルな管理 コンテナ テクノロジと従来の仮想マシンのパフォーマンス比較: Dockerと仮想マシンアーキテクチャの比較 Dockerコンテナは、本質的にはホストマシン上で実行されるプロセスです。Dockerは、名前空間によるリソースの分離、cgroupによるリソース制限、そしてコピーオンライトによる効率的なファイル操作を実現します。 Docker には 5 つの名前空間があります。 プロセス、ネットワーク、マウント、ホスト、共有メモリ 問題のあるアプリケーションを分離するために、Dockerは名前空間を用いてプロセスを分離し、プロセスまたはプロセスグループごとに独立したランタイム空間を作成し、各プロセスに異なる名前空間ビューを提供します。このように、分離された各プロセスグループは外部からはコンテナとして認識されます。Dockerはユーザーにすべてのリソースにアクセスできると誤解させますが、これは「仮想マシン」ではないことに注意が必要です。 Dockerの3つの概念:イメージ、コンテナ、リポジトリ 1. イメージ:Dockerイメージは、Dockerコンテナの作成に使用できる読み取り専用のテンプレートです。Dockerは、イメージを作成したり、既存のイメージを更新したりするための非常にシンプルなメカニズムを提供しています。ユーザーは、他のユーザーが作成したイメージをダウンロードして直接使用することもできます。 イメージとはファイル構造です。Dockerfile内の各コマンドはファイルシステム内に新しい階層を作成し、ファイルシステムはこれらの統合されたファイルシステム上に構築されます。Dockerの公式ウェブサイトには、利用可能なすべてのイメージを保存するための専用ページがあります。URLはindex.docker.ioです。 2. コンテナ:コンテナとは、イメージから作成された実行中のインスタンスです。起動、停止、削除が可能です。各コンテナは独立した安全なプラットフォームです。コンテナは、簡略化されたLinux環境と見なすことができます。Dockerはコンテナを使用してアプリケーションを実行します。イメージは読み取り専用で、コンテナの起動時に最上位層として書き込み可能なレイヤーが作成されます。 3. リポジトリ:リポジトリはイメージファイルを一元的に保存する場所です。レジストリサーバーは通常、複数のリポジトリをホストし、各リポジトリには複数のイメージが含まれており、各イメージには異なるタグが付けられています。現在、最も広く利用されているパブリックリポジトリはDocker Hubで、ユーザーがダウンロードできる膨大な数のイメージを保存しています。 Dockerリポジトリはイメージの保存に使用されます。独自のイメージを作成したら、`push`コマンドを使用してパブリックまたはプライベートリポジトリにアップロードできます。その後、別のマシンでこのイメージを使用するときは、リポジトリからプルするだけです。Dockerリポジトリの概念はGitに似ており、レジストリサーバーはGitHubのようなホスティングサービスと捉えることができます。 2. Dockerをインストールする 前提条件:Dockerはカーネル要件が比較的高いため、一般的にUbuntuなどのプラットフォームで実行することが推奨されます。ただし、コンテナ標準として、DockerはCentOS、Mac OS X、Windowsなどの他のプラットフォームもサポートしています。現在、DockerはCentOS 7(64ビット)、CentOS 6.5(64ビット)以降のCentOSバージョンをサポートしています。CentOS 6.5以降を実行する場合は、これらのカーネルにDocker実行用の特定の変更が含まれているため、カーネルバージョン2.6.32-431以上が必要です。 DockerはデフォルトのストレージドライバとしてAUFSを使用しますが、LinuxメインラインカーネルにはAUFSは含まれていません。CentOSでは、カーネルバージョン2.6.9で導入された機能であるDevice Mapperをストレージドライバとして使用できます。まず、この機能が有効になっているかどうかを確認する必要があります。 CentOS 7のインストール Docker RPM パッケージはすでに CentOS-Extra リポジトリに含まれているため、Yum を使用して直接インストールできます。
CentOS 6.6のインストール CentOS 6.6には既に同じ名前の実行可能システムパッケージ「docker」が存在することに注意してください。そのため、Docker RPMパッケージの名前は「docker-io」となり、まずdockerをアンインストールします。
ステップ3: Docker-IOをインストールする
これでDockerのインストールは完了です。
III. 基本的なDocker操作
保存イメージ:
画像を読み込む:
ローカルミラーを削除します:
タグが付いていないローカルミラーをすべてクリーンアップします。
コンテナの出力情報を取得するには、「docker logs」コマンドを使用できます。
コンテナを削除します:
コンテナとイメージに関する基礎情報:
以下を表示できます: コンテナインスタンスのIPアドレスとポートバインディングのリスト 特定のポートマッピングを検索する 詳細な構成情報を収集する コンテナ内から指定されたパスにファイルをコピーします。
Dockerfile を使用してイメージをビルドします。
|