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

Dockerfileがもたらす開発業務の時間短縮 - (page 3)

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

2017-06-30 07:30

Dockerfileにおけるキャッシュの具体例

 では、具体的に、Dockerfileのキャッシュ機能によるビルド時間の短縮例を見てみましょう。まず、前回の記事で紹介した4行からなるウェブサーバコンテナのDockerイメージを生成するDockerfileを例に解説します。

今回取り上げるDockerfileの例。CentOS 6.8という無償のLinux OSのテンプレートとなるDockerイメージを入手し、ウェブサーバーのhttpdをインストールする。ウェブコンテンツ「test.html」を配置したDockerイメージをビルドする。Dockerコンテナ起動時には、ウェブサービスのhttpdが自動的に起動する
今回取り上げるDockerfileの例。CentOS 6.8という無償のLinux OSのテンプレートとなるDockerイメージを入手し、ウェブサーバーのhttpdをインストールする。ウェブコンテンツ「test.html」を配置したDockerイメージをビルドする。Dockerコンテナ起動時には、ウェブサービスのhttpdが自動的に起動する

 Dockerfileについて、復習をかねて説明しておくと、まず、このDockerfileは、Dockerエンジンが稼働するホストOS上でテキストエディタなどを使って作成します。Dockerfileの1行目は、「CentOS 6.8」という無償Linux OSのテンプレートのDockerイメージを入手します。2行目は、httpdというソフトウェアパッケージをDockerイメージにインストールしています。

 3行目は、ウェブコンテンツの「test.html」をDockerイメージの/var/www/htmlというディレクトリ(Windowsでいうフォルダに相当)にコピーしています。1行目から3行目までは、どのようなDockerイメージを作るのかを記述していますが、4行目は、3行目までとは異なり、コンテナ起動時に、httpdというウェブサーバを実現する実行ファイルが自動的に起動するという意味です。4行目のみが、Dockerコンテナの起動時の挙動を表しています。

 ここで、開発部門に対して、IT部門からこのDockerイメージとDockerfileが送付され、IT部門が指定したDockerエンジンが稼働する開発環境において、ウェブサーバコンテナを使ってウェブシステムを開発することになったとします。開発部門は、ウェブコンテンツのtest.htmlファイルを編集することに専念したいわけです。開発部門は、test.htmlファイルの編集を行うと、更新したtest.htmlファイルを含んだDockerイメージを作り直す(ビルドしなおす)ことになります。

 Dockerイメージの作り直し作業を行うと、通常ならば、1行目から処理が行われることになりますが、Dockerfileには、キャッシュ機能がありますので、変更が発生した箇所からビルドを行います。今回の場合、IT部門が用意したDockerイメージ(1行目)とアプリのインストール(2行目)に何も変更がないかぎり、開発部門は、Dockerイメージのビルド処理を行うと、キャッシュされた1行目と2行目の処理は、一瞬で終了し、変更のある3行目からビルド処理が行われ、Dockerイメージが更新されます。

 このDockerfileにおける1行目と2行目の処理のスキップ(処理が一瞬で終わること)は、Dockerコンテナ内の実行ファイル、ライブラリ環境の整備、アプリケーションのインストール作業といったITインフラの構築作業を省略し、開発業務に専念できることを意味します。これにより、プロジェクト全体における開発業務の時間短縮を実現できるわけです。

 今回の例では、たった2行のスキップですので、大した効果がないように感じるかもしれませんが、実際のシステムでは、多くの構築ステップが入り、これらの作業に非常に時間がかかることが少なくありません。ITインフラ構築作業の時間短縮は、開発部門にとっても切実な問題なのです。Dockerfileは、Dockerイメージの再構築にかかる時間を大幅に短縮し、開発部門の手間を省きます。IT基盤構築、開発の時間短縮を語る上で、Dockerfileは、欠かせないものなのです。

Dockerfileのキャッシュ機能による作業工数の大幅な時間短縮。開発部門は、過去に処理した1行目、2行目をスキップし、ウェブコンテンツのtest2.htmlファイルの作成、編集といった開発業務に専念することにより、OSテンプレートやアプリケーションのインストールといった、開発者にとって「やりたくない」IT基盤配備の処理をスキップできる
Dockerfileのキャッシュ機能による作業工数の大幅な時間短縮。開発部門は、過去に処理した1行目、2行目をスキップし、ウェブコンテンツのtest2.htmlファイルの作成、編集といった開発業務に専念することにより、OSテンプレートやアプリケーションのインストールといった、開発者にとって「やりたくない」IT基盤配備の処理をスキップできる
古賀政純
日本ヒューレットパッカード オープンソース・Linuxテクノロジーエバンジェリスト
兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバのSE及びスーパーコンピュータの並列計算プログラミング講師、SIを経験。2006年、米国ヒューレットパッカードからLinux技術の伝道師として「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。プリセールスMVPを4度受賞。現在は、日本ヒューレットパッカードにて、Linux、FreeBSD、Hadoop、Dockerなどのサーバ基盤のプリセールスSE、文書執筆を担当。Red Hat Certified Virtualization Administrator、Novell Certified Linux Professional、Red Hat Certified System Administrator in Red Hat OpenStack、Cloudera Certified Administrator for Apache Hadoopなどの技術者認定資格を保有。著書に「Mesos実践ガイド」「Docker実践ガイド」「OpenStack 実践ガイド」「CentOS 7実践ガイド」「Ubuntu Server実践入門」などがある。趣味はレーシングカートとビリヤード。

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

ホワイトペーパー

新着

ランキング

  1. ビジネスアプリケーション

    生成 AI を活用した革新的な事例 56 選 課題と解決方法を一挙紹介

  2. ビジネスアプリケーション

    生成 AI の可能性を最大限に引き出すためにできること—AI インフラストラクチャの戦略ガイド

  3. ビジネスアプリケーション

    業務マニュアル作成の課題を一気に解決へ─AIが実現する確認と修正だけで完了する新たなアプローチ

  4. ビジネスアプリケーション

    調査結果が示す「生成 AI 」活用によるソフトウェア開発の現状、ツール選定のポイントも解説

  5. ビジネスアプリケーション

    ITSMに取り組むすべての人へ、概要からツールによる実践まで解説、「ITSMクイックスタートガイド」

ZDNET Japan クイックポール

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

NEWSLETTERS

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

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

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