🐳

MacOSでのDocker環境構築ガイド(CLI&Docker Desktop)

2024/12/07に公開

はじめに

Webアプリケーション開発をDocker環境で始めたい方や、Dockerを久しぶりに触る方に向けて、MacOSでのDocker環境構築手順をわかりやすく解説します。
本記事では、CLI(ターミナル)を中心に進めますが、補足としてDocker Desktopを利用する手順も紹介します。

前提条件

  • MacOSがインストールされたPCを使用
  • ホームディレクトリ以下にアクセスできるユーザー権限があること
  • CLIに馴染みがない方でも実行できる手順で記載しています

目次

  1. Dockerとは?
  2. 必要なツールのインストール
  3. Dockerの動作確認
  4. 最初のDockerコンテナを実行する
  5. Docker Desktopを使った補足手順
  6. まとめと次のステップ

1. Dockerとは?

Dockerは、アプリケーションやその必要なライブラリ・設定をひとまとめにした「コンテナ」を作成し、どこでも同じ環境で動かせるようにするツールです。通常の仮想マシンより軽量で高速なのが特徴で、開発環境や本番環境の不一致によるトラブルを減らします。これにより、チーム開発がスムーズになり、効率的なデプロイが可能になります。
初心者でも簡単に扱えるよう設計されており、学ぶことで開発の幅がぐっと広がります!

用語の簡単な説明

  • コンテナ
    アプリケーションとその実行に必要なすべての依存関係をパッケージ化した、軽量かつ可搬性の高い実行環境です。各コンテナは、他のコンテナやホストOSから隔離された環境で動作し、一貫した実行環境を提供します。
  • イメージ
    コンテナを作成するためのテンプレートであり、アプリケーションのコード、設定ファイル、ライブラリなどが含まれています。イメージは読み取り専用であり、変更を加えるには新しいイメージを作成する必要があります。
  • デーモン
    Dockerのバックグラウンドプロセスで、Dockerオブジェクト(イメージ、コンテナ、ネットワークなど)の管理を行います。Docker CLIは、デーモンにREST APIでリクエストを送信し、コンテナの作成、起動、停止などの操作を実行します。

2. 必要なツールのインストール

Dockerを使うには、以下のツールをインストールします。

2.1 Homebrewのインストール

MacOSのパッケージマネージャ「Homebrew」を使用して、必要なツールをインストールします。

  1. ターミナルを開く
    Finderで「アプリケーション > ユーティリティ > ターミナル」を選択します。

  2. Homebrewのインストールコマンドを実行

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Homebrewの動作確認
    インストールが成功したら以下のコマンドを実行してバージョンを確認します。
brew --version

出力例:

Homebrew 4.4.6

2.2 Docker CLIのインストール

Homebrewを使ってDocker CLIをインストールします。

  1. Dockerをインストール
brew install docker
  1. Dockerのバージョン確認
docker --version

出力例:

Docker version 27.0.3, build xyz1234
  1. Dockerのデーモン(バックエンド)を起動する
    MacOSではDocker Desktopのデーモンを利用する必要があります。デーモンは次の補足手順で解説します。

3. Dockerの動作確認

インストールが完了したら、Dockerが正しく動作するか確認します。

  1. テスト用コンテナを実行
    以下のコマンドを実行して、hello-worldイメージを動かします。
docker run hello-world
  1. 期待される出力
    コンテナが正しく動作していれば、次のようなメッセージが表示されます。
Hello from Docker! This message shows that your installation appears to be working correctly.

4. 最初のDockerコンテナを実行する

次に、簡単なWebサーバーをコンテナとして実行します。

  1. Nginxの公式イメージを取得
docker pull nginx

このコマンドは、Docker HubからNginxの公式イメージをダウンロードします。
Docker Hubは、公式イメージを提供するDockerのリポジトリサービスです。

  1. Nginxをコンテナとして実行
docker run --name my-nginx -d -p 8080:80 nginx
  • --name my-nginx: コンテナにmy-nginxという名前を付ける
  • -d: バックグラウンドで実行
  • -p 8080:80: ホスト(Mac)の8080ポートをコンテナの80ポートに接続する設定
  1. ブラウザで確認
    http://localhost:8080 にアクセスして、Nginxのウェルカムページが表示されることを確認します。

4. 実行したプロセスの停止と削除

Nginxのコンテナを動かした後は、不要になったコンテナを停止し、削除する手順を学びましょう。これにより、システムリソースを節約し、環境を整理することができます。

コンテナの停止

  1. 実行中のコンテナを停止します。先ほど作成したmy-nginxコンテナを停止するには、以下のコマンドを使用します。
docker stop my-nginx
  1. 確認方法 停止中のコンテナを含む一覧を表示するには、以下のコマンドを実行します。
docker ps -a

出力例:

CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES
abc12345xyz nginx "/docker-entrypoint.…" 10 minutes ago Exited (0) 2 minutes ago my-nginx

コンテナの削除

不要になったコンテナを削除します。

  1. コンテナの削除コマンド
    停止したコンテナmy-nginxを削除します。
docker rm my-nginx
  1. 確認方法 再度、コンテナ一覧を表示して、削除されたことを確認します。
docker ps -a

出力例(削除後の状態):

CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES

(リストが空であれば、コンテナは削除されています)

使わなくなったイメージの削除(オプション)

  1. イメージ一覧の確認
    現在ダウンロードされているDockerイメージの一覧を確認します。
docker images

出力例:

REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest abcdef123456 2 days ago 142MB
  1. イメージの削除
    必要ないイメージを削除します。Nginxイメージを削除する場合のコマンド:
docker rmi nginx

5. Docker Desktopを使った補足手順

CLIを使わずに、GUIで簡単にDockerを操作したい方には、Docker Desktopをおすすめします。

  1. Docker Desktopのインストール
    Docker公式サイトからインストールします

https://www.docker.com/ja-jp/products/docker-desktop/

  1. インストール後のセットアップ

    • アプリケーションフォルダからDocker Desktopを起動します。
    • 初回起動時にはチュートリアルが表示されるので、指示に従ってセットアップします。
  2. CLIとの連携
    Docker Desktopを起動すると、CLIのdockerコマンドがデーモンと連携して動作するようになります。

エラーが発生した場合の対処法

  1. デーモンが起動していない場合

    • docker runCannot connect to the Docker daemonというエラーが出る場合、Docker Desktopが正しく起動していない可能性があります。Docker Desktopを起動し、デーモンが動作中か確認してください。
  2. アクセス権限エラー

    • 権限に関連するエラーが出た場合は、次のコマンドを試してください。
sudo chown $USER /var/run/docker.sock
  1. コマンドが認識されない場合
    • dockerやbrewが認識されない場合は、インストールしたプログラムのパスが環境変数$PATHに設定されているか確認してください。
echo $PATH

必要に応じて、Homebrewの公式サイトを参照してください。

6. まとめと次のステップ

これでMacOSでのDocker環境構築は完了です!次は、以下のステップに進みましょう。

https://docs.docker.com/

  • 簡単なDockerfileを作成してみる: 自分のアプリケーションをDocker化する
  • Composeを使った複数コンテナの連携: docker-composeで複数サービスの開発環境を構築

Dockerを使いこなすことで、開発環境の構築が効率的になり、チーム開発や本番運用でのトラブルが大幅に減ります。ぜひ挑戦してみてください!

Discussion