【Docker入門】メリットや用途を交えて基本情報を解説!
thumb_dockerintro_01
【Docker入門】メリットや用途を交えて基本情報を解説!
アンドエンジニア編集部
2024.02.02
この記事でわかること
Dockerは、OSレベル仮想化プラットフォームソリューションで「軽量で速い」特長があります
Dockerイメージをテンプレート活用可能で、公開レジストリを有効活用できます
Dockerを活用することで、変化するニーズに対応するDevOps環境として利用できます

Docker入門

img_dockerintro_01

Dockerとは、OSレベル仮想化プラットフォームソリューションです。Dockerイメージを用いたコンテナ仮想化システムを構築し、仮想化実行環境を実現します。Dockerにより環境の複製と配布が容易にできますので、開発のスクラップアンドビルドが効率的に実施できます

コンテナ仮想化システムの活用で、CI(継続的インテグレーション)・CD(継続的デリバリー、継続的デプロイメント)が実現できます。 【参考】:Docker

Dockerとは?使いどころやメリット・デメリットについて解説!

Dockerコンテナとは

コンテナはホストカーネルを利用し仮想化を実現するものです。仮想マシンと異なりゲストOSが介在しないため、開発者はアプリケーション開発に専念できます。ホストカーネルからはプロセスとして動作し、他のプロセスと分離し管理されます。

コンテナはゲストOSが介在しないので、システムオーバーヘッドの削減と管理が容易になります。Dockerコンテナはこのコンテナの仕組みを実装しています。

エンジニア初心者でも分かる!Dockerコンテナの超入門!

Dockerのメリット

Dockerはホストカーネルを利用しているために単一OS上で複数のコンテナが実行できます。このため、OSで用いるシステム資源は少なく済み、メモリー効率の向上がメリットとなります。CPU処理をコンテナアプリケーションに多く割り当てできるので処理能力が高められます。このため一言で言うと「軽量で速い」ことが特長となります。

また環境をイメージとして登録できますので、同一環境の複製が容易で配布がしやすいことも特長です。以上の強みを生かしてCI/CDのサイクルをさらに短周期で迅速に実施することができますので、開発ライフサイクルの効率性が一層高まります。

Dockerのメリットを徹底解説!仮想マシンとは何が違う?

Dockerリポジトリとは

DockerはDockerイメージを用いてコンテナ動作させるものです。コンテナで用いるイメージは、個々に分離された動作環境テンプレートを表します。アプリケーション実行に必要な変数・コマンドやメタデータを含みます。

Dockerリポジトリとは、イメージの保管場所を指します。またイメージの保管サービス全体をレジストリと言います。Dockerイメージの公開レジストリでデフォルト利用される提供サイトをDocker Hubと言います。

Dockerの使いどころ

Dockerの成り立ちはデベロッパーがOSの面倒を見ずにアプリケーション開発に専念し、さらにデプロイをすぐしたい、という要求から開発された経緯があります。そのためDevOpsのようにソフトウェアのビルド・テスト・デプロイと運用を短サイクルで運用連携する際に効率的に利用できます。

また、環境の複製やテンプレートの利用も可能ですので、同一形態のソフトウェアを利用した大量の関連サービスにも柔軟に対応できます。さらにDockerの仕組みを利用することで運用までの作業手順書を標準化したり、簡素化することができます。

Dockerのセットアップ

img_dockerintro_02

DockerではWindows版・Mac版・Linux版のダウンロードモジュールが用意されています。Mac版・Windows版ではDocker Desktopを利用します。Linux版ではDocker Engineをインストールしておきます。 【参考】:Get Started with Docker

2021年8月31日Dockerの料金体系が変更されており、「Personal」「Pro」「Team」「Business」の料金モデルが設定されています。企業規模や同時ビルド数等に応じて適切なモデルを選択します。従業員250名未満かつ1千万USドル未満の年間売り上げ企業は無償プランである「Personal」が利用できます。 【参考】:Pricing & Subscriptions

Docker Windows版のセットアップ概要

Docker DesktopはDocker Hubのサイトからダウンロードできます。 【参考】:Docker Desktop for Windows ダウンロードのリンク先はドキュメントのインストール方法にも記載されており、以下のリンクからも同じモジュールがダウンロードできます。 【参考】:Install Docker Desktop on Windows

インストール方法は以下の通りです。 ・ダウンロードモジュールの起動  Docker Desktop Installer.exeを起動します。

Configuration画面の確認  「Enable Hyper-V Windows Features」と「 Install required Windows components for WSL 2」のオプション設定を確認します。

インストール実行  手順に従い「Install」を選択し、終了後「Close」を選択します。

管理者アカウントの追加  管理者アカウントのadministratorとComputer Managementをdocker-usersグループに追加します。

最初の起動時には新しいライセンス条項が表示されますので、「Accept」をクリックすることで利用可能になります。

Docker Mac版のセットアップ概要

Docker DesktopはDocker Hubのサイトからダウンロードできます。 【参考】:Docker Desktop for Mac 以下のリンクからも同じモジュールがダウンロードできます。 【参考】:Install Docker Desktop on Mac

インストール方法は以下の通りです。 ・ダウンロードモジュールの起動  Docker.dmgをダブルクリックしインストーラを起動します。

アプリケーションフォルダに登録  Dockerアイコン(Docker.app)をアプリケーションフォルダーにドラッグアンドドロップします。

Windows同様、最初の起動時には新しいライセンス条項が表示されますので、「Accept」をクリックすることで利用可能になります。

Dockerの環境構築

Dockerのセットアップが完了したら利用可能です。コンテナ実行の環境構築にはDocker CLIやDocker Composeを用います

CLIはコマンドラインインターフェイスでコンテナの「生成と削除」「起動・停止」「プロセスの実行・一時停止と解除」「操作・保全」「稼働状況とログ出力」等のコマンドが提供されています。またイメージの利用やリポジトリの活用もCLIで実施します。WindowsやMacではDocker DesktopでGUIベースで作業を行うこともできます。

Docker Composeは、YAML形式のファイルを用いて複数のコンテナを定義・実行することができます。アプリケーションサービスの生成や起動が効率的に行うことができます。本番稼働のワークフローを効率化することが可能です。

Docker Composeの作業ステップとしては以下の手順に従います。 ・Dockerfileの定義  アプリケーション環境を定義することで再構築可能となります。

・docker-compose.ymlの定義  ファイルにアプリケーション構成サービスを定義します。

・docker-composeの実行  ”docker-compose up” でアプリケーションの起動・実行をします。 【参考】:Overview of Docker Compose

Dockerの環境構築は?理解を深める作業の流れを解説!

Docker参考書籍と学習方法

DockerはDocker Docsにリファレンスマニュアルが格納されています。最初に基本的な情報を得るにはこちらの公式サイトを確認することをおすすめします。情報は古いですが日本語プロジェクトサイトでは日本語情報も提供されています。 【参考】:Docker Docs 【参考】:Docker ドキュメント日本語化プロジェクト

Dockerのみならず、汎用的なコンテナの知識を得るには市販の学習参考書も各種出版されています。入門者向けのおすすめは以下の書籍です。 ・Docker/Kubernetes 実践コンテナ開発入門  コンテナ技術の基礎からアプリケーション作成まで解説した入門書です。  実際に動作するところまで理解したい人向けです。  出版元:技術評論社 【参考】:Docker/Kubernetes 実践コンテナ開発入門

エンジニア向けには以下の書籍をおすすめします。 ・Docker実践入門――Linuxコンテナ技術の基礎から応用まで  GitHubと連携したデプロイ方法を基礎から解説しています。  ITエンジニアのスキルアップでコンテナを理解したい方向けです。  出版元:技術評論社 【参考】:Docker実践入門――Linuxコンテナ技術の基礎から応用まで

プログラマー向けとしては、以下の書籍がおすすめです。 ・プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化  コンテナ技術を使ったインフラを構築し、アプリケーション開発に役立つ情報がまとまっています。  プログラマー・アプリケーションエンジニア向けです。  出版元:翔泳社 【参考】:プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化

Dockerは開発から運用までの流れを効率化します

img_dockerintro_03

DockerはOSレベル仮想化のプラットフォームとして、「軽量で速い」ことが特長です。また開発から運用までの一連の流れを効率的に実施し、短サイクル化することが可能です。今後多岐に渡るアプリケーションのニーズを満たすため開発周期の短サイクル化が加速すると考えられます。

Dockerを利用しコンテナ環境で開発を進めていくことが求められますので、情報収集に努めることをおすすめします。

気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT