DockerをMacにコマンドでインストールする。
関連記事
環境
macOS Ventura 13.3.1 (Chip: Apple M1)
インストール方法
公式サイトのInstall from the command lineに従ってインストールを実施する。
いくつかの記事でbrewコマンドで実行している手順が、上記のサイトにある手順に沿って実施する。
ダウンロード
上記サイトからインストーラーをダウンロードする。
Intel chipとApple chipで異なるので、PCにあったものをクリックする。
Chipがどちらか分からない場合は、Mac左上のアップルマークから「About This Mac(このMacについて)」をクリックするとChipの情報が確認できる。
以下の場合は、ChipがAppleであることがわかる。
インストール
LaunchPad > Terminal を開く。
ダウンロードしたインストーラがあるフォルダへ移動して、インストールコマンドを実行する。
ホームのDownloadフォルダにインストーラがある場合は以下のコマンドを一行ずつ実行する。
cd ~/Downloads
sudo hdiutil attach Docker.dmg
sudo /Volumes/Docker/Docker.app/Contents/MacOS/install
sudo hdiutil detach /Volumes/Docker
(実行例)
$ cd ~/Downloads
$ sudo hdiutil attach Docker.dmg
Password:
Protective Master Boot Record (MBR : 0)のチェックサムを計算中…
Protective Master Boot Record (MBR :: 検証済み CRC32 $4E196C56
GPT Header (Primary GPT Header : 1)のチェックサムを計算中…
GPT Header (Primary GPT Header : 1): 検証済み CRC32 $313284DB
GPT Partition Data (Primary GPT Table : 2)のチェックサムを計算中…
GPT Partition Data (Primary GPT Tabl: 検証済み CRC32 $02A59CAA
(Apple_Free : 3)のチェックサムを計算中…
(Apple_Free : 3): 検証済み CRC32 $00000000
EFI System Partition (C12A7328-F81F-11D2-BA4B-00A0C93EC93B : 4)のチェックサムを計算中…
.......
EFI System Partition (C12A7328-F81F-: 検証済み CRC32 $B54B659C
disk image (Apple_HFS : 5)のチェックサムを計算中…
......................................................................
disk image (Apple_HFS : 5): 検証済み CRC32 $1C44BF3E
(Apple_Free : 6)のチェックサムを計算中…
..........................................................................
(Apple_Free : 6): 検証済み CRC32 $00000000
GPT Partition Data (Backup GPT Table : 7)のチェックサムを計算中…
GPT Partition Data (Backup GPT Table: 検証済み CRC32 $02A59CAA
GPT Header (Backup GPT Header : 8)のチェックサムを計算中…
GPT Header (Backup GPT Header : 8): 検証済み CRC32 $3EB76206
検証済み CRC32 $D5B305D6
/dev/disk5 GUID_partition_scheme
/dev/disk5s1 EFI
/dev/disk5s2 Apple_HFS /Volumes/Docker 1
$
$ sudo /Volumes/Docker/Docker.app/Contents/MacOS/install
$
$ sudo hdiutil detach /Volumes/Docker
"disk4" ejected.
$
起動
インストールが完了したら、以下のコマンドを実行して起動する。
open /Applications/Docker.app
※以下のポップアップが出た場合、「Open」をクリックする。
数十秒待つとちょっぴり可愛いイラストの「サービス契約が変更されるよ」画面が出てくることがあるので、こちらも目を通りして、「Accept」をクリックする。
推奨設定かカスタム設定(各設定を自分で設定するやり方)の選択画面。よくわからない人は推奨設定で良いかと思う。
職場や個人の情報を聞かれるが、一旦Skip。
以下のような画面が出れば、Docker Engineは起動されている状態である。
動作確認
LaunchPad > Terminal を開く。
まずはdockerコマンドが実行できることを確認。
which docker
以下のような実行結果であればOK。
$ which docker
/usr/local/bin/docker
※以下のような結果だとNG(インストールが正常にできていないため再インストールする)
$ which docker
docker not found
では以下のコマンドを実行し、サンプルのコンテナを作成してみる。
docker run -d -p 80:80 docker/getting-started
以下のような出力となる。
$ docker run -d -p 80:80 docker/getting-started
Unable to find image 'docker/getting-started:latest' locally
latest: Pulling from docker/getting-started
261da4162673: Pull complete
a60aada4c44a: Pull complete
2f61404bb4b8: Pull complete
fa3f58a317be: Pull complete
476bb2a1cc22: Pull complete
33a28b928e89: Pull complete
a879581b8e12: Pull complete
d0193f05f10f: Pull complete
14f901bbf056: Pull complete
Digest: sha256:d79336f4812b6547a53e735480dde67f8f8f7071b414fbd9297609ffb989abc1
Status: Downloaded newer image for docker/getting-started:latest
de47a686aa99a27047ae4947c4e207d6707d1a361db43cbac0d385e6583d529a
以下のコマンドでイメージが存在しているかどうか確認。
docker images
以下のコマンドでコンテナが起動しているか確認
docker ps
確認結果例は以下のようになる。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker/getting-started latest 289dc403af49 20 months ago 46.5MB
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
de47a686aa99 docker/getting-started "/docker-entrypoint.…" About a minute ago Up About a minute 0.0.0.0:80->80/tcp quizzical_haslett
イメージはdocker runコマンドで指定したdocker/getting-startedが存在していることがわかる。またdocker psコマンドでは、docker runコマンドの出力の最後にある「de47a686aa99…」とCONTAINER IDが一致しているので同じものであることがわかる。そのSTATUSが「Up」になっているため、コンテナは正常に起動している。
以下のコマンドでコンテナを停止する。
docker stop <CONTAINER ID or NAMES>
以下のように停止する。
$ docker stop de47a686aa99
de47a686aa99
コンテナを停止すると、docker psコマンドには現れなくなるが、停止されただけで削除はされていない。この場合、-aオプションで確認することができる。
docker ps -a
以下のように出力され、StatusがExitとなっているため、停止されているコンテナと判断できる。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
de47a686aa99 docker/getting-started "/docker-entrypoint.…" 6 minutes ago Exited (0) 12 seconds ago quizzical_haslett
以下のコマンドでコンテナを削除する。
docker rm <CONTAINER ID or NAMES>
以下のコマンドでイメージを削除する。TAGがlatestの場合は省略可能。
docker rmi <REPOSITORY>:<TAG>
以下のように実行する。
$ docker rm de47a686aa99
de47a686aa99
$ docker rmi docker/getting-started:latest
Untagged: docker/getting-started:latest
Untagged: docker/getting-started@sha256:d79336f4812b6547a53e735480dde67f8f8f7071b414fbd9297609ffb989abc1
Deleted: sha256:289dc403af49e8876db321c0c403ec50d79d74a236b1119d0c071d25ddd1205b
Deleted: sha256:4467edf8cd11883367f40fdf8f44108576b13d05186ae16d05bd445a19da8e91
Deleted: sha256:3f58614e508e56549d1cb2c03d716a12c18afd130fdde698a5eb7ef48e39236f
Deleted: sha256:a3d2e88d154ff7f7323cc52635e1c4305d73bf116d7aff83a602b1384dba4351
Deleted: sha256:66c081341dfe9cc9c510d4bdbe7057427a61b04252e6eac509e527595f9f7ccf
Deleted: sha256:a4b1714046486232a1607da380428c878b4dd3372ae2ee312f875c5888bc6ed1
Deleted: sha256:8a38a7ddef5baae56ef8df919edf400596670e560601eb54601a57482511cc1d
Deleted: sha256:df2aff5157ade7d5082ded8abbf1a5beeb1277f13dddef251199b7f7e1b6d791
Deleted: sha256:b6cf354b2ec6a811921158fc66181f06a1f389621cb939abcba122211fd6bb06
Deleted: sha256:1b577a8fb8ce25023a0ec0a17a6dc3d6aa9cca989f75457800cb55179ee2e834
docker imagesとdocker ps -aコマンドを再度実行すると、上記のイメージとコンテナは削除されているため表示されないことがわかる。
以上で簡単な動作確認は完了。