古賀政純「Dockerがもたらすビジネス変革」

Dockerがもたらすビジネス変革--「コードによるインフラ構築」の具体例 - (page 2)

古賀政純(日本ヒューレットパッカード)

2017-04-28 08:00

アプリ導入手順をDockerfileに記述する

 次に、2行目の「RUN」と書かれた行では、ウェブサーバを実現するソフトウェア(httpdパッケージ)をDockerイメージにインストールしています。すなわち、出来上がったDockerイメージは、CentOS 6.8のOS環境の雛形に、httpdパッケージが追加されたものになります。

 ここで重要な点は、アプリのインストール処理は、あくまで、これから生成するDockerイメージに対して行っているものであり、Dockerエンジンが稼働しているホストOSの環境にインストールしているわけではないという点です。

 ホストOSに含まれるアプリ構成などを一切汚すことなく、さまざまな種類のLinux OSのアプリをDockerイメージとして作成できることを意味しています。さまざまな種類のLinux OSや、バージョンの異なるアプリ環境を必要とする開発者にとっては、自分のホストOS(開発環境)を汚されずにさまざまな開発環境を構築できるため、非常に便利です。


入手した雛形のDockerイメージにアプリをインストールする処理をDockerfileに記述する

 3行目の「COPY」で始まる行では、Dockerエンジンが稼働するサーバ上に事前に用意したウェブコンテンツ(今回は、test.html)をDockerイメージにコピーしています。以上で、Dockerイメージへのウェブサーバのインストールやウェブコンテンツの格納が終了したことになります。


ウェブコンテンツをDockerイメージ内に格納

 最後に、4行目のCMD行は、先ほどの3行とは意味が異なります。1行目から3行目までは、Dockerイメージを作る際の命令を書き連ねていましたが、このCMD行は、Dockerコンテナが起動する際に自動的に実行してほしいアプリケーションやコマンドを記述します。ここでは、ウェブサーバを提供する「httpd」という実行ファイルを指定しています。これにより、Dockerコンテナが起動すると、自動的にWebサービスのhttpdが稼働する、すなわち、「Webサービスが稼働するDockerコンテナ」を実現できるわけです。

 ここで注意しなければならない点があります。それは、アプリケーション(今回の場合は、httpd)の起動方法が従来の物理システムや仮想マシンの場合とは、大きく異なる点です。従来の物理マシンやハイパーバイザー型の仮想化環境における仮想マシンでは、アプリケーションのパッケージにあらかじめ含まれている起動・停止用のスクリプトとOSのサービス管理機能を使ってアプリケーション自体の起動や停止を行っていました。

 しかし、コンテナの場合は、直接アプリケーションの実行ファイル(今回の場合は、/usr/sbin/httpdという実行ファイル)を直接指定する方法がほとんどです。ここでは詳しく触れませんが、Dockerでは、物理サーバや仮想マシンのゲストOS上で設定していた従来のアプリケーションの起動方法と異なる場合が少なくないということを知っておく必要があります。

 (※)従来のアプリケーションの起動方法と同様の方法をDockerコンテナで実現する方法も存在しますが、一般に、Docker環境の多くは、コンテナ側で稼働するプロセスを極力減らし、軽量化するというポリシーから、アプリケーションの実行ファイルを直接指定する方法が採用されています。


CMD行は、Dockerコンテナが起動する際に、自動的に実行してほしいアプリケーションやコマンドを記述できる

 たった4行のDockerfileですが、これだけで、「CentOS 6.8という無償OS環境で稼働するWebサービスを提供するDockerコンテナ」を実現するDockerイメージが実現できます。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. クラウドコンピューティング

    生成 AI の真価を引き出すアプリケーション戦略--ユースケースから導くアプローチ

  2. セキュリティ

    セキュリティ担当者に贈る、従業員のリテラシーが測れる「情報セキュリティ理解度チェックテスト」

  3. セキュリティ

    クラウドネイティブ開発の要”API”--調査に見る「懸念されるリスク」と「セキュリティ対応策」

  4. セキュリティ

    5分で学ぶCIEMの基礎--なぜ今CIEM(クラウドインフラストラクチャ権限管理)が必要なのか?

  5. セキュリティ

    従業員のセキュリティ教育の成功に役立つ「従業員教育ToDoリスト」10ステップ

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]