【簡単解説!】Docker DesktopとDocker Engineの違いとインストール方法

Dockerを使えば、アプリケーションを実行するための環境をまとめて管理できるため、開発環境の構築や動作確認がぐっと楽になります。しかし、実際に使い始めるには、まず自分のPCにDockerを正しくインストールする必要があります。この記事では、Dockerの基本を押さえながら、各環境・OSでのインストール方法を分かりやすく解説します。

Dockerとは?

そもそもDockerは、アプリケーションを動かすのに必要な環境をまとめてコンテナ化し、どこでも同じように実行しやすくする技術です。言い換えると分離された実行環境です。

技術自体は大体2015年から多くの企業に取り入れられ始め、Googleなどの大手でも採用しています。現在インフラを学習するにあたって欠かせないと言っても過言ではない技術です。

DockerEngineとDockerDesktopの違い

Docker Engineは、コンテナを動かす中核機能そのものです。
dockerdやCLIを含む実行基盤で、Linux上ではこのDockerEngineが直接動きます。

Docker Desktopは、Docker Engineを内包したデスクトップ向け統合アプリで、GUIやCompose、拡張機能なども備え、Mac・Windows・Linuxで手軽に使えるのが特徴です。ちなみにDocker Desktopには特定の条件で商用利用ライセンスが必要になってしまうのでご注意ください。もし商用での利用を考えている方は下をご覧ください。

余談ですが、筆者はDockerDesktopとWindowsの相性があまりよろしくないので「WSL2」というWindows内でLinuxを仮想起動させ、それにDockerEngineをインストールして使っています。そうすることで、手軽にコマンド起動などを使えます。(WindowsのPath登録が苦手…)

商用ライセンスについて

Docker Desktop は商用利用可能ですが、従業員250人以上または年商1,000万米ドル以上の企業、政府機関などで利用する場合は有料ライセンスが必要です。

ではDockerを利用するときは規模によって必ず有料になりうるのでしょうか。答えは「NO」です。

有償ライセンスになりうるのはあくまで「DockerDesktop」という統合アプリケーションであり、Dockerの中核である「DockerEngine」ではないからです。

結構この辺ごちゃごちゃしていますが、使ってみればなんとなくわかると思いますので、とりあえず手を動かしてインストールしてみましょう。

DockerDesktop・DockerEngineのインストール

MacやWindowsではセットアップが簡単なDocker Desktopを使うことが多いため、この記事ではMacとWindowsでのDocker Desktopの導入方法を紹介します。

LinuxでもDocker Desktopは使えますが、LinuxはそのままDocker Engineを動かしやすいため、Desktopを使わずに構築するのが一般的です。そこで、LinuxではDocker Engineのインストール方法をご紹介します。

応用~K8sについて~

Kubernetes(K8s)は、Googleの社内技術をもとに生まれ、現在はCNCFで開発が進められているオープンソースの技術です。
主に、多数のコンテナをまとめて管理するために使われます。

Kubernetesを使うと、コンテナの起動や停止、台数の増減、障害が起きたときの再起動などを自動で行いやすくなります。
そのため、Dockerを使ったアプリを、より大規模で安定して運用したい場合に役立ちます。

Mac/Windows Docker Desktopの導入

docker desktopの導入方法をご紹介します。

インストーラーのダウンロード

自分の環境に合ったインストーラーをダウロードします。
※2020年以前にMacを購入した方は1つ下のintel chipになりますのでご注意ください。

インストール

Dockerファイルをドラック&ドロップしてインストール完了

インストーラーのダウンロード

自分の環境に合ったインストーラーをダウロードします。

インストール

画像を準備中なのよさっ!

.exeを開いて次絵をぽちぽちすれば完了!

簡単な使い方紹介!!

ダウンロードが完了しましたら、ひとまずコンテナを起動してみましょう!今回は動作確認によく使われるwelcome-to-dockerというコンテナを動かしてみます

コンテナを探す!

右上のSearchをクリックし、検索欄に「welcome-to-docker」と入力

実行!

左のタブから選択して②のRunを押して実行してみましょう!

起動確認

こんな感じで動いていることが確認できます。

Linux系

Linux系にDockerDesktopを入れる意味は特にないので、DockerEngineを動かす方法をご紹介します。Linuxを使う人はおそらく玄人だと思うので、コピペできるコマンドのみ貼っておきます。このコードをコピペすると「hello-world」コンテナでの動作確認まで一括でできます。

sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-doc podman-docker containerd runc | cut -f1)sudo apt updatesudo apt install -y ca-certificates curlsudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.ascsudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOFTypes: debURIs: https://download.docker.com/linux/debianSuites: $(. /etc/os-release && echo "$VERSION_CODENAME")Components: stableSigned-By: /etc/apt/keyrings/docker.ascEOFsudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo systemctl status docker || sudo systemctl start dockersudo docker run hello-world
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)sudo apt updatesudo apt install -y ca-certificates curlsudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.ascsudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOFTypes: debURIs: https://download.docker.com/linux/ubuntuSuites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")Components: stableSigned-By: /etc/apt/keyrings/docker.ascEOFsudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo systemctl status docker || sudo systemctl start dockersudo docker run hello-world
sudo dnf remove -y \ docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-enginesudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.reposudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo systemctl enable --now dockersudo docker run hello-world
sudo dnf remove -y \ docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine \ podman \ runcsudo dnf -y install dnf-plugins-coresudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.reposudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo systemctl enable --now dockersudo docker run hello-world

まとめ

Dockerという技術は、個人のブログ(当サイト)からGoogleなどの大企業まで幅広く利用されており、今の世界のインフラにとって欠かせない技術です。

使いこなすととても便利ですが、最初は自分で構築するのは大変ですので、いろいろなものを実際に実行してみて慣れていきましょう!

参考文献

https://docs.docker.com/engine/install