Dockerとは?基本的な使い方6つや知っておきたい用語を解説

Dockerとは?基本的な使い方6つや知っておきたい用語を解説のアイキャッチイメージ

Dockerとは?


Dockerとは、アプリケーションを開発・実行するためのオープンプラットフォームです。

コンテナには、ライブラリ、システムツールなど、ソフトウェアの実行に必要なすべてのものが含まれていて、ソフトウェアコンテナ内のアプリケーションデプロイメントを自動化します。

また、「アプリケーション」や「OS」をパッケージイメージ化することにより、極めて集約度の高いITシステムを実現しています。

どのような環境にもアプリケーションをすばやくデプロイおよびスケールでき、コードを実行することができます。

Dockerの基本的な使い方6つ


ここでは、 Dockerの基本的な使い方を6つご紹介します。Dockerは「Linux」「Windows」「Mac」の全てにおいて利用することが可能です。

一つ一つの基本作業を確実に進めていき、確実にコマンドを実行していけば問題なく動きます。まずは、Dockerをインストールするところからはじめていきましょう。

以下で使い方を詳しく説明しますので、参考にしてみてください。

使い方1:Dockerをインストールする

Dockerの基本的な使い方1つ目は、「Dockerをインストールする使い方」です。

Dockerは「Mac」「Windows 10 Pro」「Windows 10 Home」にもインストールすることは可能です。お使いのOSにインストールしてDockerを利用してみましょう。

Mac

DockerをMacにインストールする使い方には、Dockerの公式サイトからDockerのアカウントを作ってログインし、DockerHubからダウンロードしてインストールします。インストールした後は正しくインストールされているのか確認するようにしましょう。

次に、Nginxを起動してみてください。Nginxが立ち上がっているかを確認できたら、localhostにアクセスしてブラウザで確認してみてください。

Windows 10 Pro

Windows 10 Proでは「Hyper-V」「Bash on Ubuntu on Windows10」「Docker for Windows」など、マルチプラットフォーム対応ツールを利用できます。

Docker MachineというLinuxベースの仮想マシン内でコンテナが実行されるため、Docker for WindowsにはHyper-Vが必要となります。Hyper-Vに対応していないWindows 10環境でDockerコンテナを試したい場合は、Docker Toolboxを利用するようにしましょう。

まずHyper-Vの機能を有効化しておきます。次にDocker for Windowsのサイトからインストーラーをダウンロードし、実行します。続いて、コマンドプロンプトにてDockerの「hello-world」コンテナを実行し、バージョン情報などを確認するためにコマンドを実行します。

以上で環境のセットアップが完了します。

Windows 10 Home

DockerをWindows 10 Homeにインストールするには、まずCPU仮想化を確認する必要があります。

タスクマネージャーパフォーマンスからCPUにおいて、仮想化が有効となっていれば問題ありません。もし有効になっていない場合は有効にする必要があります。

次にDocker Toolboxを入手します。画面に従ってインストールしてください。デスクトップにDocker Quickstart Terminalのショートカットが表示されますので、そこから起動します。

使い方2:Docker Hubから取得する

Dockerの基本的な使い方2つ目は、「Docker Hubから取得する使い方」です。特定のイメージをダウンロードするには、イメージをDocker Hubから取得する必要があります。

DockerイメージをDocker Hubからダウンロードするときは、Docker image pullコマンドを使用し、Dockerイメージの詳細情報を確認するには、Docker image inspectコマンドを使用します。

また、Dockerイメージの削除は、Docker image rmコマンドで行うことができます。使い方を復習しておきましょう。

使い方3:Nginxコンテナを起動する

Dockerの基本的な使い方3つ目は、「Nginxコンテナを起動する使い方」です。まず、DockerホストOS上でDockerコンテナを作成します。

次にDockerホストOSからDockerコンテナ内のNginxへアクセスします。続いてDockerホストOS以外の他のサーバからDockerコンテナ内のNginxへアクセスし、DockerホストOS上で起動したDockerコンテナを停止・削除します。

基本的な使い方を確認しておきましょう。

使い方4:Nginxコンテナを生成する

Dockerの基本的な使い方4つ目は、「Nginxコンテナを生成する使い方」です。

Dockerを作成するDockerコンテナの環境は「CentOS release 6.6 (2.6.32-504.8.1.el6.x86_64)」「docker-io 1.4.1-3」「CentOS release 6.6 (2.6.32-504.8.1.el6.x86_64)」「Nginx 1.6.2-1」です。

まずDockerホストOSのCentOS 6.6サーバにrootユーザでログインします。次にDockerイメージ作成用のDockerfileを作成します。

最後に、docker0のIPアドレスを指定して、Dockerコンテナ内のNginx経由でindex.htmlへアクセスできるか確認しましょう。

使い方5:Nginxコンテナを停止する

Dockerの基本的な使い方5つ目は、「Nginxコンテナを停止する使い方」です。

DockerホストOS以外の他のサーバからDockerホストOSのIPアドレス(今回の例では198.51.100.111)を指定して、Dockerコンテナ内のNginxへアクセスできるかをテストしましょう。

Dockerコンテナ内のNginxへアクセスし、「/usr/share/nginx/html/index.html」の内容が表示される事を確認します。使い方自体は簡単です。

使い方6:Nginxコンテナを削除する

Dockerの基本的な使い方6つ目は、「Nginxコンテナを削除する使い方」です。イメージを削除するには、まずそのイメージに紐づくコンテナを削除している必要があります。

しかし、forceオプションによる強制削除も可能となっています。 Nginx用のDockerイメージを失くしたい場合は、docker rmiコマンドを実行してDockerイメージを削除するようにしましょう。

使い方としては難しくありません。

Dockerを導入するメリット4つ


Dockerを導入することには、さまざまなメリットがあります。

ここからは、Dockerを導入するメリットについて具体的に紹介していきますので、導入を検討している方はぜひ参考にしてみてください。

環境の共有が容易にできる

Dockerを導入しておけば、同じDockerイメージをダウンロードしてコンテナを作成することで、環境構築マニュアルなどを使用せずに簡単に環境を共有できるようになります。

また、テストだけでなく本番環境でも同じ手順でコンテナの利用が可能なため、環境を統一して開発を進められます。

環境構築に時間がかからない

Dockerは環境構築が容易に行えるだけでなく、DockerイメージについてまとめたドキュメントやGitHuも多いことから、誰でも短時間での環境構築が可能です。

自分で一から構築しなくても、希望しているDockerイメージに近いものをダウンロードするだけですぐに利用を開始できます。

Dockerに特化したWebサービスがある

Dockerでの利用を想定しているさまざまなWebサービスがあることから、Dockerを利用することで便利なサービスを利用できます。

たとえばCircleCIなどを利用することで、Dockerを利用したテストやビルド、デプロイを自動化することができます。

リソースの消費を抑えられる

従来のハイパーバイザー型の仮想化では仮想マシン上でOSを実行していたため、リソースが必要でしたが、コンテナの場合はアプリケーションの実行のみです。

そのため、Dockerはこれまでの仮想化と比較して、ディスクやメモリなど、リソースの消費が少ないこともメリットとなります。

Dockerを使う上で知っておきたい10の用語


ここでは、Dockerを使う上で知っておきたい用語をご紹介します。 ark>

「Docker image」「Docker Engine」「Dockerfile」「ビルド」「リポジトリ」「コピー・オン・ライト(copy-on-write)」「Docker Datacenter」「Docker for Mac」「Docker for Windows」、そして「レイヤ」という10種類の用語について、以下に詳しく説明します。

用語1:Docker image

Dockerの用語1つ目は、「Docker image」です。「Docker image」とはコンテナの土台となるもので、Dockerではダウンロードした「Docker image」をホスト上で保管しています。

ホスト上に「Docker image」がない場合はレジストリからダウンロードを行います。

用語2:Docker Engine

Dockerの用語2つ目は、「Docker Engine」です。「Docker Engine」とはDockerのコアコンポーネントで、Dockerイメージの作成やコンテナの起動などを行います。

Linuxカーネルによって処理を行います。

用語3:Dockerfile

Dockerの用語3つ目は、「Dockerfile」です。「Dockerfile」とは、Docker上で動作させるためのコンテナの構成一つ一つの情報を書き表すためのファイルです。

通常は、手動でDockerイメージを構築するために実行が必要な全ての命令を指します。Dockerは Dockerfileの命令を読み込み、自動的にイメージを構築します。

用語4:ビルド

Dockerの用語4つ目は、「ビルド」です。「ビルド」とは、Dockerを使ってソースコードに問題(バグ)がないか解析を行いイメージを構築し、問題がなければ実行できる形のファイルに変換し組み立てることです。

ちなみに、コンパイルはビルド作業の中に含まれる作業の一段階です。また、構築時にはDockerfileと「コンテクスト」を使います。

用語5:リポジトリ

Dockerの用語5つ目は、「リポジトリ」です。「リポジトリ」とは、Dockerイメージの集まりです。

リポジトリはレジストリサーバに送信すると共有できます。そのため、イメージの違いをタグでラベル付けします。

用語6:コピー・オン・ライト(copy-on-write)

Dockerの用語6つ目は、「コピー・オン・ライト(copy-on-write)」です。「コピー・オン・ライト(copy-on-write)」は、イメージとコンテナのリソース最適化とスピード性能をたもつために、Dockerはユニオン・ファイル・システムを使います。

また、レイヤに対する変更が可能であり、このレイヤは削除されます。一般的には書き込み可能なレイヤの下にはベース・イメージを基礎としており、ベース・イメージとは異なったレイヤを積み上げます。

これによりイメージの容量を最小化し、開発環境でイメージを共有できるようになります。

用語7:Docker Datacenter

Dockerの用語7つ目は、「Docker Datacenter」です。「Docker Datacenter」とは、Dockerで構築するプラットフォームをエンタープライズに強化するもので、サブスクリプションを基本とするサービスです。

Dockerネイティブのツールを統合することで、オンプレミスのCaaSプラットフォームが構築されます。組織における開発からプロダクションへのアプリケーション構築をスムーズに行えます。

用語8:Docker for Mac

Dockerの用語8つ目は、「Docker for Mac」です。「Docker for Mac」とは、macOS上でDockerを使う場合、「Docker for Mac」 はDocker Toolboxの後継としてMac向けに特化したものです。

Docker for Macはインストールが簡単で軽量に設計されています。「Docker for Mac」 はVirtualBox 無しにDockerを扱うことができるアプリケーションです。

また、「Docker for Mac」 を導入すると、Dockerの他にDocker Composeも使えるようになります。

用語9:Docker for Windows

Dockerの用語9つ目は、「Docker for Windows」です。「Docker for Windows」とは、Windows 10システム向けに特化した軽量なDockerです。

また、クライアント・ベースのオペレーティングシステム(Windows 10)上でDockerコンテナを設定するための製品です。

「Docker for Windows」 は、Windows Server 2016上でもオプションを切り替えるだけでWindowsコンテナの迅速なセットアップや実行を行えます。

用語10:レイヤ

Dockerの用語10個目は「レイヤ」です。「レイヤ」とは、イメージ内部においてイメージに対する変更のことです。

これらはDockerfile内における命令を意味します。コンテナ上の読み書き可能なレイヤをコンテナレイヤと呼び、イメージを構成する読み込み専用レイヤをイメージレイヤと呼びます。ベース・イメージから最終的なイメージを作成するまでレイヤは順番に重なります。

イメージの更新や再構築時は、更新が必要となるレイヤのみを変更し、変更のないレイヤはローカルでキャッシュします。

Dockerの使い方を覚えよう!


今回は、Dockerの基本的な使い方や、Dockerの用語について詳しくご紹介しましたが、いかがでしたでしょうか。

Dockerを使うとコードを早く出荷できたり、アプリケーションの動作を標準化したり、コードをシームレスに移動したり、リソースの利用を改善して費用を節約できたりできます。

また、アプリケーションをパッケージイメージ化することにより、集約度のとても高いITシステムを実現することができます。

広く支持され、注目されているDockerをインストールして、始めてみましょう。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。