Dockerとは?初心者のためにメリットと基本的な使い方を解説
今回は初心者の方のためにDockerのメリットと基本的な使い方について解説します。
Dockerとは、アプリケーションの実行環境の構築・配布などをするのに便利なソフトウェアです。
この記事を読めばDockerの基本的な使い方も知ることができます。読み終えた頃には「Dockerを使用してみたい!」となる人もいるはず(いると嬉しいです)。
では、いってみましょう!
Docker(ドッカー)って何?
Docker(ドッカー)とは、仮想化技術を使用してアプリケーションの実行環境を構築するためのソフトウェアです。
でも「仮想化技術」がよくわかりませんよね。仮想化技術とは、1台の物理サーバーで複数のOSを動かす技術です。物理サーバー上にソフトウェア的に複数の仮想サーバーを構築し、同時に動かすことができます。
Dockerはこの技術を使って、アプリケーションの実行環境を作ることができるのです。
例えば、以下の記事にあるとおりReactの環境も比較的簡単に作れます。
【DockerでReactの環境構築】エンジニア1年生と学ぶコンテナ構築までの手順
Dockerの特徴
Docker(ドッカー)には以下の特徴があります。
- 全てのアプリケーションがホストOSによって実行されるため、ゲストOSが不要
- 構築する環境ごとにOSをインストールする必要がないので、イメージが軽量
- 構築した環境はアプリケーションを含めた完全な実行環境をパッケージングしたものなので、開発チームとの共有が簡単
これらの特徴は「コンテナ型仮想化技術」によるものです。仮装化技術にはDockerが採用している「コンテナ型」のほか、「ホスト型」「ハイパーバイザー型」があります。
タイプ | コンテナ型 | ホスト型 | ハイパーバイザー型 |
---|---|---|---|
ホストOS | 必要 | 必要 | 不要 |
ゲストOS | 不要 | 必要 | 必要 |
特徴 | ホストOSにコンテナエンジンと呼ばれる仮想化ソフトウェアをインストール。その上にコンテナを置くことで、複数のアプリケーションを同じOS上で動かす。 | ホストOS上に重ねて仮想ホストを展開し、OSを利用できるようにしたもの | 仮想化ソフトウェアであるハイパーバイザーをインストールして仮想マシンを稼働させるもの。ホストOSは不要。 |
またDockerはオープンソースで、誰でも無料で入手することができます。
Docker(ドッカー)のメリット
Dockerには以下のメリットがあります。
アプリケーションの実行が高速
DockerはゲストOSが不要でホストOS上で直接動作します。「ホスト型」や「ハイパーバイザー型」の仮想技術はゲストOSが必要でした。
ホストOSとゲストOS間でやりとりが発生しないため、アプリケーションの動作が高速です。
共有が簡単
Dockerはアプリケーションをコンテナと呼ばれる軽量な仮想環境にパッケージングしています。これにより、アプリケーションを実行するために必要なすべての環境をまとめて管理できます。
パッケージングしたコンテナは「Dockerイメージ」と呼ばれる形で保存し開発チームに配布可能です。配布先のPCでも同じように動作させることができます。
DockerイメージはDocker Hubという中央リポジトリにて共有することも可能です。
環境構築が簡単
Dockerコミュニティは開発が非常に活発で、Docker Hubを覗けばさまざまなDockerイメージが共有されています。
共有されたDockerイメージを使用することで、即座に開発環境を構築することができます。
Docker(ドッカー)のデメリット
上記のようなメリットがある一方で、Dockerにはデメリットも存在します。
学習コストの高さ
既にさまざまなDockerイメージが世に出回っているため、簡単に環境構築をすることが可能です。しかしDockerそのものを理解せずに使用すると、不具合があったときに対応できません。
トラブル対応までできるようにするには覚えることがかなりありますが、新しいものを導入するときに学習するのはエンジニアなら当然です。理解できるまで、学びましょう。
対応していないホストOSでは動かない
ホスト型やハイパーバイザー型の仮想技術はゲストOS上で動かすものなので、インストールさえしてしまえば、どんなOS上でも動かすことができます。
しかし「コンテナ型」のDockerは、ホストOS上で動作するのでホストOSに未対応のアプリケーションでは起動できません。
Docker(ドッカー)を使ってアプリケーションを動かす手順
Dockerを動かす手順は以下のとおりです。
- Dockerをインストールする
- Dockerイメージを取得する
- Dockerコンテナを作成する
- アプリケーションを実行する
それぞれ詳しく見ていきます。
1. Dockerをインストールする
Dockerのインストール方法は、Dockerの公式サイトに詳しい手順が掲載されています。インストールが完了したら、コマンドライン上でDockerが正常に動作するか確認します。
2. Dockerイメージを取得する
Docker Hubなどから必要なイメージを取得します。たとえば、nginxというWebサーバーのイメージを取得する場合は、以下のコマンドを実行します。
docker pull nginx
3. Dockerコンテナを作成する
イメージを元に、Dockerコンテナを作成します。以下のコマンドを実行します。
docker run -d -p 8080:80 --name mynginx nginx
上記のコマンドで、mynginxという名前のDockerコンテナが作成され、nginxのイメージを元に実行されます。
4. アプリケーションを実行する
Dockerコンテナを起動し、アプリケーションを実行します。以下のコマンドを実行します。
docker start mynginx
上記のコマンドで、mynginxという名前のDockerコンテナが起動されます。Webブラウザなどから、http://localhost:8080などのアドレスにアクセスすることで、nginxが起動したことを確認できます。
Docker(ドッカー)でよく使うコマンド
最後にDockerでよく使うコマンドを10個ご紹介します。
コマンド | 記述例 | 説明 |
docker run | docker run [オプション] [イメージ名] [コマンド] | Dockerコンテナを起動する |
docker ps | docker ps [オプション] | 起動中のDockerコンテナの一覧を表示する |
docker images | docker images [オプション] | Dockerイメージの一覧を表示する |
docker build | docker build [オプション] [Dockerfileがあるディレクトリのパス] | Dockerイメージをビルドする |
docker stop | docker stop [コンテナ名またはID] | 起動中のDockerコンテナを停止 |
docker rm | docker rm [コンテナ名またはID] | 停止中のDockerコンテナを削除する |
docker rmi | docker rmi [イメージ名またはID] | Dockerイメージを削除する |
docker exec | docker exec [オプション] [コンテナ名またはID] [コマンド] | 起動中のDockerコンテナ内でコマンドを実行する |
docker-compose up | docker-compose up [オプション] | Docker Composeを使用して、複数のDockerコンテナを一括で起動する |
docker-compose down | docker-compose down [オプション] | Docker Composeを使用して、起動中の複数のDockerコンテナを一括で停止・削除する |
まとめ
Dockerは難しいものと思われがちですが、しっかり理解して導入することができれば、開発の大きな助けになります。最初は大変でも導入して損はないかと思いますので、ぜひ一度使ってみましょう!
冒頭でもご紹介しましたが、DockerにおけるWordpressの環境構築方法も紹介しているので、こちらも試してみてください!
【入門】Dockerで環境構築|WordPress環境をローカルPCに作ろう!
この記事を書いた人
クーシーブログ編集部
1999年に設立したweb制作会社。「ラクスル」「SUUMO」「スタディサプリ」など様々なサービスの立ち上げを支援。10,000ページ以上の大規模サイトの制作・運用や、年間約600件以上のプロジェクトに従事。クーシーブログ編集部では、数々のプロジェクトを成功に導いたメンバーが、Web制作・Webサービスに関するノウハウやハウツーを発信中。
お問い合わせはこちらから
Web制作デザイン、丸ごとお任せ
お問い合わせする
テキスト:小山倖之介、加藤久佳 デザイン:大坂間琴美