この記事では、DockerをApple silicon(M1)を搭載したMacにインストールする方法について説明していきます。インストールについては、Webページからインストールする方法と、Homebrewを利用してインストールする方法を説明します。
また、VirtualBoxやVMWareといった仮想マシンソフトの代わりとして使うことを想定して、ubuntuをGUIで使用する方法についても説明していきます。
今回は、Macを使っているなら必ず入れておくべき便利なアプリであるHomeBrewがどのようなものか、また、インストール方法や使い方を説明していきます。 Homebrewとは Homebrewとは一言で言うとMacのた[…]
インストール
公式サイトから
以下のリンクにアクセスしてください。
こちらのページの「Docker Desktop」の「Download for Mac – Apple Chip」クリック。

Docker.dmgというファイルがダウンロードされます。こちらをクリックして起動してください。次のような画面が出たらDocker.appをApplicationsにドラッグアンドドロップしてください。

これでインストールは完了です。
Homebrewでインストール
Homebrewがインストールされている場合、ターミナルから次のコマンドを実行
% brew install --cask docker
今回は、Macを使っているなら必ず入れておくべき便利なアプリであるHomeBrewがどのようなものか、また、インストール方法や使い方を説明していきます。 Homebrewとは Homebrewとは一言で言うとMacのた[…]
確認
Dockerを起動した状態でアクティビティモニタを見てみます。

DockerがApple silicon(M1)でネイティブ動作していることが確認できます。
UbuntuをGUI動かしてみる
Docker上のUbuntuをGUIで動かすには、Ubuntuのデスクトップ環境をインストールしたり、vncアプリをインストールして設定したりする必要があります。しかし、これらの作業を既にやってくれているDocker imageがありますのでそちらを使用します。
次のコマンドでubuntuに関連したイメージにどのようなものがあるか確認します。
% docker search ubuntu

dorowu/ubuntu-desktop-lxde-vnc というものがあります。こちらでUbuntuのデスクトップをブラウザから操作することができます。こちらのイメージからコンテナを作成し、動作させます。次のコマンドをターミナルに打ち込んでください。
% docker run --name ubuntu_desktop -p 6080:80 dorowu/ubuntu-desktop-lxde-vnc
イメージが自動でダウンロードされ、ubuntu_desktopという名前のコンテナが生成され、実行されます。コンテナの80番ポートをホストPCの6080番ポートに設定しています。
Mac上でブラウザを開き
にアクセス。ubuntuのデスクトップにアクセスできます。(場合によっては、ブラウザの画面でしばらく真っ白な状態が続く場合があります。しばらく待機すれば、下の画像のような画面が表示されると思います。)

Docker Desktopから動かす
GUIでコンテナの操作をすることができるDocker Desktopですが、2021年4月18日現在イメージをpullするのはターミナルからコマンドを打ち込む必要があるようです。
% docker pull dorowu/ubuntu-desktop-lxde-vnc
Docker Desktopに移動し、「Images」をクリックして、pullしたイメージの「RUN▶️」をクリック

作成するコンテナの設定をしていきます。「Container Name」にコンテナ名を入力。今回はホストPCのポートを6080に設定します。「Ports」の「Local Host」に「6080」と入力。

「Run」をクリックすると、コンテナが作成、実行されます。
Docker Desktopの「Containers / Apps」で今作成したコンテナの欄にある「OPEN IN BROWSER」をクリックすれば、Ubuntuのデスクトップにアクセスすることができます。

場合によっては、ブラウザの画面でしばらく真っ白な状態が続く場合があります。しばらく待機すれば、下の画像のような画面が表示されると思います。

最後に
2021年4月18日現在VirtualBoxやVMwareはApple silicon(M1) Macに対応していません。Mac上でLinuxを動作させる時にそれらの代わりとしてDockerは利用できる場合もあるかと思います。ぜひ試してみてください。
ご質問、ご指摘等ありましたらコメントしてください。最後までお付き合いいただきありがとうございました。