LINEで現役エンジニアに直接質問してみよう!登録無料

DockerのMacOSXへのインストール方法と基本的な使い方

Mac OSXでDockerを使うには「Docker for Mac」をインストールする必要があります。

一昔前は「Docker Toolbox」というアプリをインストールする方式でしたが、現在はレガシーバージョン(遺産)という扱いになり、「Docker for Mac」が対応していない古いMacのためにインストールするために用意されています。

今から、Dockerを使い始める人は、可能な限り「Docker for Mac」を使うようにしましょう。

「Docker for Mac」のインストール方法

「Docker for Mac」をインストールするにはたったの5ステップでできます。

  1. Docker for Macをダウンロード
  2. インストーラ「Docker.dmg」をダブルクリックして起動
  3. Mac用のDockerアプリをApplicationフォルダにドラッグ&ドロップ
  4. Dockerをダブルクリックして起動
  5. 完了
STEP.1
Docker for Macをダウンロード
STEP.2
インストーラ「Docker.dmg」をダブルクリックして起動
STEP.3
Mac用のDockerアプリをApplicationフォルダにドラッグ&ドロップ

初めて起動するMacでは、下記のようなアラートが表示されるので「OK」を選択します。

完成!
MEMO

docker-composeはどうやってインストールするの?
docker-composeはMacOSの場合、Docker.dmgでインストールした時、同時にインストールされます。

Dockerがインストールできたか確認する

ここで、dockerがちゃんとインストールされたか確認しましょう。

Macのターミナルを開いて、docker versionと入力・実行し、情報が出力されればインストールが正常に完了しています!(環境によっては、下記と全く同じ表示にはなりません)

# dockerのバージョン確認
$ docker version

# docker-composeのバージョン確認
$ docker-compose version

ちなみに、docker-composeとは、dockerのコンテナをまとめて起動・管理するときに使う便利なツールです。

Dockerの基本的な使い方

ここでは、下記のような流れでDockerの基本的な使い方を解説していきます。

今回はNginxを例にイメージの取得・起動・確認・停止・削除の基本5操作やってみます。

  1. Nginxイメージの取得
  2. Nginxイメージからコンテナの起動
  3. Nginxイメージからコンテナの確認
  4. Nginxイメージからコンテナの停止
  5. Nginxイメージからコンテナの削除

この記事では、Dockerの取り扱う時のイメージをざっくり知ってもらう事を目的に解説していきます。本格的な詳しい説明は、別記事で解説予定です。

Nginxイメージの取得

まずはNginxのイメージを取得します。イメージとは、Dockerで動くアプリケーションを1つにまとめたものと考えてください。

$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
bc51dd8edc1b: Pull complete 
66ba67045f57: Pull complete 
bf317aa10aa5: Pull complete 
Digest: sha256:ad5552c786f128e389a0263104ae39f3d3c7895579d45ae716f528185b36bc6f
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

これでイメージを取得できました。

取得したイメージ一覧は、下記のようなコマンドで確認できます。

$ docker images
REPOSITORY                            TAG                 IMAGE ID            CREATED             SIZE
nginx                                 latest              2073e0bcb60e        3 weeks ago         127MB

Nginxイメージからコンテナの起動

取得したイメージからアプリケションを起動しましょう。起動したDockerアプリケーションは、それぞれが「コンテナ」と呼ばれます。

$ docker run -d -p 8080:80 --name nginx nginx
86fe3122c1f5dd216029e32b01443eb8e4bc431e4ed1338a6b89f79b319324bd

これで、コンテナが起動しました。

起動したコンテナは下記のようなコマンドで確認できます。

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                  NAMES
86fe3122c1f5        nginx               "nginx -g 'daemon of…"   About a minute ago   Up 59 seconds       0.0.0.0:8080->80/tcp   nginx

Nginxはブラウザから確認できるようにDockerで起動しています。実際に見てみましょう。アドレスは「http://localhost:8080」です。

Nginxイメージからコンテナの停止

起動したコンテナを停止しましょう。

コンテナを停止するとNginxなどのアプリケーションサービスは停止しますが、またすぐに起動してサービスを再開させることもできます。いわゆる「スリープ状態」ですね。

コンテナを停止するには「どのコンテナ」かを選択しなくてはいけません。その情報は「docker ps」で確認できます。

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                  NAMES
86fe3122c1f5        nginx               "nginx -g 'daemon of…"   About a minute ago   Up 59 seconds       0.0.0.0:8080->80/tcp   nginx

この場合は「CONTAINER ID: 86fe3122c1f5」か「NAMES: nginx」のどちらかの情報を使います。今回は「NAMES」を使ってみることにします。

$ docker stop nginx
nginx

これでこれでコンテナが停止しました。

docker psをもう一度実行して見ると、一覧からコンテナが消えています。実は、docker psは起動中のコンテナしか表示しません。停止中のコンテナを表示するには docker ps -aを使います。

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                          PORTS               NAMES
86fe3122c1f5        nginx               "nginx -g 'daemon of…"   10 minutes ago      Exited (0) About a minute ago                       nginx
MEMO
ここに文章

停止したコンテナを再開させるにはdocker startを使います。

$ docker start nginx
nginx

Nginxイメージからコンテナの削除

停止しているコンテナを削除します。削除する時も「どのコンテナ」か選択が必要になります。

$ docker rm nginx
nginx

コンテナの削除ができました。

docker ps -aで確認すると、本当に消えているのが確認できます。

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

まとめ

今回は、MacOSXへのDockerのインストール方法と簡単なDockerの使い方を解説しました。

ざっと確認しただけなので、まだうまく扱えないかもしれませんが、ザッと「こんな流れでDockerは扱うんだな〜」とイメージできればOKです。

この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。