Dockerとは?使いどころやメリット・デメリットについて解説!
thumb_docker_01
Dockerとは?使いどころやメリット・デメリットについて解説!
開発ツール
アンドエンジニア編集部
2021.11.27
この記事でわかること
Dockerは仮想環境を作るためのソフトウェア
Dockerを使うことで開発チームの開発環境を統一できる
Dockerは、Dockerエンジン・Dockerイメージ・コンテナの3つから成り立っている

Dockerとは何かわかりやすく解説

img_whatisdocker_01

まずは「Dockerとは何か?」をわかりやすく解説します。そもそも仮想環境とは何か、Dockerで何ができるのか、Dockerと他の仮想マシンの違い、Dockerの使いどころについてまとめたので、Dockerについて詳しく知らない方はこの機会にぜひ学んでください

仮想環境とは?

仮想環境とは、コンピュータ内で構築された仮想的な環境を意味します。仮想環境内では通常のコンピュータと同じような手順で、アプリを動かしたりプログラムを開発したりできます。また、Windowsの中にLinuxの仮想環境を構築することもできるため、Linuxでしか使えないアプリをLinuxパソコンを持っていなくても使うことが可能です。

仮想環境を作るには、コンピュータのCPUやメモリなどのリソースを仮想環境にも分け与える必要があります。あくまで元々あったリソースを使っているだけなので、速度などの性能は通常よりも落ちますが、実機をもう1台用意しなくて良いというコスト面のメリットがあります。

Dockerで何ができるのか?

DockerとはDocker社が開発した仮想環境を作るためのソフトウェアを指します。Dockerはコンテナと呼ばれる技術を使って仮想環境を作っており、他の仮想マシンとは少し異なる手法を用いています。

Docker 

Dockerと他の仮想マシンの違い

Dockerと並んで代表的な仮想マシンにVMware Playerがありますが、VMware Playerは仮想環境の作り方がDockerとは異なります。VMware PlayerはパソコンのOS上に別のOSを作り、そのOS上に仮想環境を作ってアプリを動かします。たとえば、WindowsOS上でVMware Playerを起動させLinuxOSを作り、LinuxOS上でExcelを動かすといった具合です。この場合のExcelは、ゲストOSであるLinuxOSによって管理されます。VMware Playerのやり方ではExcelを使う度にゲストOSを動かす必要があるため、起動が遅くなってしまうデメリットがあります。

対してDockerは、ゲストOSを作らず直接アプリを動かすことができるため、起動が速いメリットがあります。

Dockerの使いどころ

Dockerは主に開発環境を構築する際に使われます。Dockerを使えば開発チームの環境を全く同じにできるのがメリットです。開発環境が違うと開発中のアプリの挙動が変わってしまうことがあり、連携が取りにくくなってしまいますが、Dockerはその問題を解決します。Dockerで全員同じ状態の仮想環境を作り、そこに共通のアプリやツールをインストールすれば開発環境が異なることはありません

Dockerの仕組みについて

img_whatisdocker_02

Dockerは、Dockerエンジン・Dockerイメージ・コンテナの3つから成り立っています。この3つの役割や特徴を知ることで、Dockerの仕組みについて理解できるので、3つについて詳しく解説します。

Dockerエンジン

DockerエンジンはDockerそのものを指します。Dockerエンジンを起動させるとパソコンのOS上でコンテナが動くようになります。Dockerは公式サイトからWindows用、Mac用それぞれをインストールすることが可能です。

Dockerイメージ

コンテナを取得する前にDockerイメージを用意する必要があります。Dockerイメージはコンテナの実行に必要なファイルがまとめられたものであり、アプリごとに別々の種類のイメージが用意されています。

DockerイメージはDocker Hubから入手することが可能です。Docker Hubには各Dockerイメージを入手するためのコマンドが書かれているので、そのコマンドをコマンドプロンプトで叩きます。

Docker Hub 

コンテナ

Dockerイメージを入手したら、Dockerイメージによってコンテナを作りますDockerイメージからコンテナを作成することを「ビルドする」と言います。このようにDockerは、Dockerエンジン・Dokerイメージ・コンテナの3つから成り立っています。

Dockerのメリット・デメリット

img_whatisdocker_03

ここでは、Dockerのメリット・デメリットについてまとめました。Dockerは他の仮想マシンと比べてどういった点が優れているのか、劣っているのか、詳しく解説します。

メリット

Dockerのメリットは、開発環境の構築が簡単にできることです。Dockerエンジンをインストールし、利用したいアプリのDockerイメージを入手してコンテナを作成するだけで、開発環境が構築できます。また、開発環境を作り直したい場合はコンテナを削除して再び作成するだけでよく、ホストOSに影響を及ばさないため、安心して作り直すことが可能です。更にDockerは、パソコンのCPUやメモリなどのリースを必要最低限しか利用しないため、パソコンに与える負荷を小さくすることができます。

デメリット

Dockerのデメリットは習得に時間がかかることです。Dockerは他の仮想マシンとは異なる手法で仮想環境を構築するため、構築方法について1から理解する必要があります。Dockerの動作手順をよく理解しないまま使用すると思わぬトラブルが発生することも多いので、Dockerを導入したくてもできない企業もあります。

Docker初心者におすすめの本

img_whatisdocker_04

最後に、Docker初心者が1から学ぶにあたって最適な本をまとめました。Docker関連の本は数多く出版されていますが、その中でも今回挙げる3つの本はDockerの仕組みについて分かりやすく書かれておりおすすめです。

たった1日で基本が身に付く! Docker/Kubernetes超入門

たった1日で基本が身に付く! Docker/Kubernetes超入門 

本書はDockerの基本的な利用方法がわかりやすくまとまっています。DockerfileやComposeの設計、コンテナのデータ永続化など、各分野の解説がされており、Dockerの基礎知識を1日で習得することが可能です。また、サンプルファイルを使って実際にコンテナを通してアプリ開発を体験できるため、実践的なテクニックも身につきます。

Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門 

Docker初心者から中級者までおすすめの本です。Dockerの基礎知識から実際のアプリの作り方まで徹底解説した入門書となっており、じっくりDockerを学びたい方に適しているでしょう。また、Dockerを実際に現場で活用している方が書いた本なので、Dockerの最新情報に関しても掲載されています。

さわって学ぶクラウドインフラ docker基礎からのコンテナ構築

さわって学ぶクラウドインフラ docker基礎からのコンテナ構築 

コンテナ環境を自力で構築できるようになることを目的とした本です。Dockerのインストール方法から始まりWebサーバを起動させる方法、永続化、ネットワーク、コンテナイメージと順番に学ぶことができます。インフラエンジニアを目指す方や、Webアプリ開発者のインフラ学習に最適な1冊と言えるでしょう。

Dockerは今後も使われるので今のうちに勉強を!

img_whatisdocker_05

本記事ではDockerとは何かについて解説しました。Dockerと他の仮想マシンの違いやDockerの仕組みなどについて、ご理解頂けたかと思います。Dockerは動作が速い上に仮想環境の構築が簡単なので、多くの企業で導入されています。

エンジニアが市場価値を上げるコツは、今度流行すると予想される技術分野について詳しくなることです。今後Dockerを使う企業はさらに増えていくことが予想されるので、Docker未経験の方は今のうちに勉強しておくことおすすめします。Dockerの勉強を行う場合は本記事で挙げた3つの本を活用してみてください。

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

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

eyecatch_visual_coder
Adobe製品を使わない"デザイナー"?「ビジュアルコーダー」が考える、自己満足で終わらないWebデザインとは
三角
2020.06.16

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

お問い合わせ・情報提供
この記事をシェア
Twitter
Facebook
LINE
Hatena

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

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

Powered by マイナビ AGENT