🐳

【Docker入門】Dockerプラットフォーム構築

に公開

Dockerプラットフォーム構築

macOS での Docker 環境構築についてまとめました。Webサーバーや MySQL、Portainer の活用例なども含めて、macOS に特化した手順で紹介します。


1. システムの準備と要件(macOS)

  • 対応OS:macOS 10.15 (Catalina) 以降
  • アーキテクチャ:Intel または Apple Silicon (M1/M2/M3)
  • 必須ツール:Homebrew

確認コマンド:

$ sw_vers
$ uname -m

2. Docker Desktop のインストール(macOS)

1. Homebrew で Docker CLI をインストール(※Docker Desktop とは別)

$ brew install --cask docker

2. Docker Desktop の起動

アプリケーションフォルダから Docker.app を起動。
初回起動時にパスワード認証が求められます。

3. 動作確認

$ docker --version
$ docker info

Docker is running が表示されていればOK


4. 基本コマンドとコンテナの起動

$ docker pull centos:7
$ docker run -it --name=sys-container-1 centos:7 echo 'welcome docker!'
$ docker ps -a
$ docker run -it --name=sys-container-2 centos:7 bash
# yum install -y net-tools

5. Webサーバー(Nginx)コンテナの起動

$ docker pull nginx:1.25.0-alpine
$ docker run -d -p 8001:80 --name=my-webserver1 nginx:1.25.0-alpine
$ curl localhost:8001

静的ファイルの差し替え:

$ docker cp index.html my-webserver1:/usr/share/nginx/html/index.html

6. Dockerfile でカスタムイメージを作成

FROM nginx:1.25.0-alpine
COPY index-image.html /usr/share/nginx/html/index.html
COPY docker_logo.png /usr/share/nginx/html/docker_logo.png
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
$ docker build -t myweb:v1.0 .
$ docker run -d -p 8002:80 --name=my-webserver2 myweb:v1.0

7. MySQL / MariaDB コンテナの実行

MySQL:

$ docker pull mysql:5.7-debian
$ docker run -it -e MYSQL_ROOT_PASSWORD=pass123# mysql:5.7-debian /bin/bash

MariaDB:

$ docker run --name mariadb -e MYSQL_ROOT_PASSWORD=mkevin -d -e MARIADB_DATABASE=item -p 3306:3306 mariadb:10.2
$ docker exec -it mariadb /bin/bash
# service mysql start

8. Portainer によるGUI管理

$ docker pull portainer/portainer-ce
$ docker volume create portainer_data
$ docker run -d -p 9000:9000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  --restart=always \
  portainer/portainer-ce

ブラウザで以下を開いて管理:

http://localhost:9000
  • portainer 起動後、画面(※ 別途portainer記事を作成する予定)

まとめ

この macOS 版では、Docker Desktop を用いたコンテナ環境の構築から、Nginx やデータベース、Portainer の導入まで、GUI と CLI の両面からアプローチしました。Linux 環境とは少し異なりますが、非常に快適に学習・運用できるのが macOS の魅力です。

Discussion