[Docker]DockerをMacにコマンドでインストール(Ventura)

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コマンドを再度実行すると、上記のイメージとコンテナは削除されているため表示されないことがわかる。

以上で簡単な動作確認は完了。