Index ソフト・ハード Dockerタスク | Docker構成・方式 |
機能・要件 構成・方式 エンジン イメージ レジストリ コンテナ DockerFile DockerFile仕様 DockerFile形式 コンテナNW DockerMachine DockerToolbox Compose DockerDesktop タスク 導入 ToolBox導入 |
Docker Engine ・Docker利用に必要なクライアントサーバ型のアプリケーションパッケージ コミュニティ版(CE、Community Edition) エンタープライズ版(EE、Enterprise Edition)・クライアント (コンテナーを操作) dockerコマンド(フロントエンド)の実体 CLIによりユーザからのコマンドを受け付けてサーバと通信・サーバー (Dockerデーモン) ホストマシン上で稼働 コマンドを受け取ってコンテナの構築・実行などを行う。・docker-ce(Linux) stable(安定版) は3ヶ月毎に更新 edge(エッジ) は毎月機能を追加・Docker Machine(Windows、MacOS) Docker Toolbox Docker DesktopDockerイメージ (image) ・テンプレートで、コンテナ作成時に使われる構築(build)コンポーネント ・仮想マシンイメージとは異なり、実体としての1ファイルではない。 抽象的なイメージレイヤ(image layer)の集まり 一般的にDockerイメージは、複数のイメージレイヤで構成される。・読み込み専用 イメージレイヤは読み込み専用で、レイヤ間では親子の依存関係を持てる。・イメージの情報
Dockerレジストリ (registry) ・配布(distribution)コンポーネント パブリックまたはプライベートにイメージを保管 アップロードやダウンロードが行える。・Docker Hub パブリックなレジストリ 多くの利用可能なイメージが提供されている。Dockerコンテナ (container) ・コンテナ(container) とは イメージのランタイム・インスタンス(runtime instance、実行状態にある物) (イメージからメモリ内に展開し、実際に実行する何か)・アプリケーション実行(run)コンポーネント アプリケーションの実行に必要な全てが含まれている。・Dockerイメージから生成 ・Dockerは、コンテナの実行、 開始、停止、移動、削除ができる。 ・各コンテナは分離されている。 ・オーケストレーション (コンテナ同士の協調) 実際のアプリの動作は複数のコンテナ同士が協調し合う事が多い。DockerFile ・Dockerイメージを自動構築できるように定義する設定ファイル ・このファイル内でイメージを構成する命令を書く。 ・命令の一つ一つが、概念上のイメージレイヤに相当 ・docker commitでコンテナからイメージを作成するよりも、構成管理がし易い。 ・Dockerfileの利用手順 任意の場所にプロジェクト用のディレクトリを作成、中にDockerfileを作成 そこに記述されたファイルやディレクトリも準備して格納する。 docker build コマンドでDockerイメージをビルド 出来上がった新たなイメージを元に、docker run コマンドでコンテナを起動DockerFileの仕様 ・書式 # コメント 命令 引数・Dockerデーモンは命令を1行ずつ実行 ・必要があれば命令ごとにコミット(レイヤ作成) ・最終的に作成された、新しいイメージのIDを出力 ・命令(instruction)は、大文字と小文字を区別しない。 引数(arguments)と区別するために、大文字にすることが推奨される。・#で始まる行をコメントとみなす。 ・各種命令 (RUN命令がBuild時に実行される。)
引数追加は可能※ENTRYPOINT命令とCMD命令は、Dockerfile内で一度だけ指定可能 複数指定した場合は、最後に指定したものが有効DockerFile内の命令などの形式 ・RUN命令の形式(2つのformを持つ。) シェル形式 RUN <コマンド> exec形式 RUN [“実行可能形式”,”パラメータ1”,”パラメータ2”]・CMD命令の形式(3つのformを持つ。) exec形式 CMD [“実行可能形式”,”パラメータ1”,”パラメータ2”] ENTRYPOINTへの引数として提供 CMD [”パラメータ1”,”パラメータ2”] シェル形式 RUN <コマンド>・ENTRYPOINT命令の形式(2つのformを持つ。) exec形式 ENTRYPOINT [“実行可能形式”,”パラメータ1”,”パラメータ2”] シェル形式 RUN <コマンド>・ADDとCOPYの形式(2つのformを持つ。) ADD/COPY <src> <dest> ADD/COPY ["<src>",・・・ "<dest>"]Dockerコンテナ・ネットワーク (container) ・ユーザ定義のネットワークを作成し、コンテナ間通信を行う。 ・デフォルトネットワーク Dockerインストールで、自動的に3つのネットワークを作成・ユーザ定義のネットワーク作成 docker network create・ネットワークを作成し、コンテナ起動時にdocker run --net=<ネットワーク名> のオプションを指定 そのネットワークに接続されたコンテナが作成・ユーザ定義ネットワーク用の内部DNSサーバ Docker Machine (Docker EngineはLinux上でネイティブに稼働) ・Docker Machineを利用し、WindowsやMacの環境でDockerを動かす。 ・Windows環境へ「Docker」をインストールする場合 (使用するためのシステム要件がツールにより異なるため、2つの選択肢) Docker Toolbox (レガシーなツール) Docker Desktop for Windows (新しいツール)Docker Toolbox ・VirtualBox仮想化システムを使用 VirtualBoxをドライバとして利用し、Dockerを動かす仮想マシンを作成・インストールされる機能 Docker Engine Docker Machine Docker Compose Kitematic Boot2Docker ISO VirtualBoxDocker Compose ・複数のコンテナで構成されるシステムで、 Dockerイメージのビルドや各コンテナの起動・停止などを簡単に行えるツール ・Composeファイル docker-compose.ymlファイルをプロジェクト用のディレクトリに作成Docker Desktop ・必要なシステム要件 (Hyper-V仮想化システムが必須) Windows 10(64bit)、Pro、Enterprise、Education(ビルド15063以降) BIOSで仮想化が有効になっている。 CPUがSLAT(Second Level Address Translation)に対応している。 4GB以上のRAMが搭載されている。・インストールされる機能 Docker Engine Docker Machine Docker Compose Kitematic Docker CLIクライアント |
All Rights Reserved. Copyright (C) ITCL |