エンジニア初心者が自身のPCにDocker Desktopをインストールし、手元の環境でアプリ開発できるようにします。最後にはNginx(Webサーバ)をインストールし、実際にDockerがきちんと動作することを確認できるようになります。
ソフトウェアアップデート
Apple silicon MacでもIntelチップが搭載されたアプリを動作させるためにRosettaをインストールする必要があります。私の場合は、Resettaインストール時にインジケータが途中で止まってしまう現象が発生しました。「システム設定」→「一般」→「ソフトウェアアップデート」でアップデートを適用することでRosettaをインストールすることができます。そのため、事前にソフトウェアアップデートを行います。
Docker Desktopのダウンロード
https://docs.docker.com/desktop/release-notes/ にアクセスし、最新バージョンのリンクをクリックしてダウンロードします。私の場合はMac with Apple chipをダウンロードしました。
チェックサムの確認
念の為、公開されているDocker.dmgが改竄されていないことを確認します。
$ sha256sum ~/Downloads/Docker.dmg
f1822250029d4e899d5a822ebf617aa57b002288cb951bfb70e5b52de72dabee /Users/t-inagaki/Downloads/Docker.dmg
ダウンロードリンク(私の場合はMac with Apple chip)の隣にあるchecksumをクリックし、表示されたチェックサムの値と一致することを確認します。一致していれば改竄されていないということがわかります。
Docker Desktopのインストール
Finderを開き左側メニューからダウンロード(Downloads)を選択し、先ほどダウンロードしたDocker.dmgファイルをダブルクリックします。もちろんブラウザのダウンロード履歴からダブルクリックでも良いです。Docker.appをアプリケーション(Applications)フォルダにドラッグ&ドロップします。
Dockerの起動
Finderを開きアプリケーション(Applications)フォルダを選択し、Docker.app
をダブルクリックします。Docker.app
がインターネットからダウンロードされて、本当に開いていいのか確認されます。開く(Open)をクリックします。
Dockerサブスクリプションのサービス同意
- Docker Desktopは小規模ビジネス(250人以下の従業員かつ年間1,000万ドルの収益)、個人使用、教育、非営利オープンソースプロジェクトに関しては無料です。
- そうでなければ、Docker Desktopは商用利用としてサブスクリプション支払いを必要とします。
- サブスクリプション支払いは政府機関にも必要とされます。
- Docker Pro、Team、BusinessサブスクリプションはDocker Desktop商用利用を含みます。
https://docs.docker.com/desktop/install/mac-install/
- Docker Desktop is free for small businesses (fewer than 250 employees AND less than $10 million in annual revenue), personal use, education, and non-commercial open source projects.
- Otherwise, it requires a paid subscription for professional use.
- Paid subscriptions are also required for government entities.
- Docker Pro, Team, and Business subscriptions include commercial use of Docker Desktop.
個人利用や教育目的なら無料であり、特に問題ない。同意(Accept)をクリックします。
Docker Desktop セットアップの完了
推奨設定を使用(Use recommended settings)を選択し、終了(Finish)をクリックします。
特権アクセスの確認
Docker Desktopは設定を適用するにあたって特権アクセスを必要とするので、パスワードを入力しOKをクリックします。
Rosettaのインストール
インストール(Install)を選択する。もし、インジケータが途中で止まってしまう場合は途中でキャンセルし、本記事冒頭手順のソフトウェアアップデートをやってみます。
アンケート
最後にアンケートを聞かれます。答えたい人は答えても良いです。答えたくない人は、アンケートをスキップ(Skip survey)をクリックします。これでインストールは完了です。
コンテナの起動確認
今回の場合は、実際にNginxを起動してみます。ターミナルソフト(iTermなど)を起動し、以下コマンドを実行します。
$ docker run -d --rm -p 8080:80 --name nginx nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
a5573528b1f0: Pull complete
8897d65c8417: Pull complete
fbc138d1d206: Pull complete
06f386eb9182: Pull complete
aeb2f3db77c3: Pull complete
64fb762834ec: Pull complete
e5a7e61f6ff4: Pull complete
Digest: sha256:4c0fdaa8b6341bfdeca5f18f7837462c80cff90527ee35ef185571e1c327beac
Status: Downloaded newer image for nginx:latest
1cbc6ae4bd00f0f7b4cfc24f2adf20d9d1cfa7d369144521d865a9f45c3720da
各オプション
上記コマンドオプションの意味は下表にまとめます。
オプション | 意味 | 備考 |
-d | コンテナをバックグラウンドで起動する。 | 一般にサーバなどを起動する際は必ず指定する。 |
–rm | コンテナが存在している場合、自動的に削除する。 | コンテナを停止するとコンテナは残り続けてしまうため指定している |
-p | 公開するコンテナのポート。 | Nginxはデフォルト80番ポートでリッスンする。localhostの8080番ポートに来たリクエストに対して、80番に転送することを意味する。 |
–name | コンテナの名前 | これを設定しないとランダムに名前が割り当てられるので見つけづらい。そのため設定している。 |
動作確認
ブラウザのアドレスバーに http://localhost:8080 と入力しEnterキーを押します。Nginx(Webサーバ)にアクセスできたことが確認できました。
Rosettaインストールが途中で失敗してしまう場合
Docker.appを起動し、画面右上の歯車アイコンをクリックします。
左側メニューで「一般(General)」を選択します。
右側のリージョンをスライドし、Use Rosetta for x86/amd64 emulation on Apple Siliconを選択します。
コメント