はじめに
MacOSでdockerを使おうとすると、第一候補は Docker Desktopになりますが、一定規模以上の企業で利用する場合は有料サブスクリプションが必要になります。*1
WindowsならWLS2でLinuxの仮想環境を作ってその上で、linuxのdocker(Docker Desktopでないので有料サブスクリプション不要)を動かすということができます。一方MacOSには標準でWLS2相当のものがないので、OSSのLima
を使ってLinux仮想環境を作って、その上でlinuxのdockerを動かします。
ここではそのセットアップ時の手順を備忘録として記載します。
セットアップ手順
前提のセットアップ
すでにセットアップされている場合はスキップしてください。
Limaのインストールとdockerインスタンスの作成
Limaのインストール
brew install lima
dockerが入ったLinux仮想環境の起動
Limaには多数のVMテンプレートがあり、それらテンプレートを利用して簡単に目的の仮想環境をセットアップすることができます。dockerの環境もLimaのテンプレートにあるため、ここではそのテンプレートを利用してdocker環境を起動する手順をまとめました。
limactl start --name=default template://docker
(参考)dockerが入ったLinux仮想環境の停止
limactl stop
(参考)dockerが入ったLinux仮想環境の2回目以降の起動
limactl start
dockerコマンドのセットアップ
dockerコマンドのインストール
brew install docker
dockerコマンドからLimaの仮想環境上のdockerデーモンへの接続
ここで記載した手順は、Limaのdocker環境を起動した時のメッセージの最後に表示されています。
lima-default
という名前のコンテキストを作成して、切り替える方法になります。
- dockerコンテキストの作成
docker context create lima-default --docker "host=unix:///Users/nobuyuf/.lima/default/sock/docker.sock"
- dockerで作成したコンテキストへの切り替え
docker context use lima-default
- テスト
docker run hello-world
下記メッセージが表示されればOKです。
Hello from Docker! This message shows that your installation appears to be working correctly.
docker起動スクリプト
上記手順で作成した環境をベースに、Limaのdocker仮想環境を起動しdockerのコンテキストを変更する一括のシェルスクリプトです。
start-docker.sh
#!env bash # start docker instance via Lima limactl start # change docker context docker context use lima-default
補足
補足1 Limaの操作
Limaで稼働している仮想環境の一覧
limactl list
固有のインスタンス名をつけた仮想環境の新規作成と起動
fedora仮想環境をfedoravm
というインスタンス名で起動する
limactl start --name=fedoravm template://fedora
起動中の仮想環境にインタラクティブなシェルで入る
limactl shell fedoravm
Limaの起動可能なテンプレート一覧参照
limactl start --list-templates
補足2 dockerのコンテキスト操作
コンテキスト一覧表示
docker context list
コンテキストの切り替え
docker context use <コンテキスト名>
コンテキストの削除
docker context rm <コンテキスト名>
*1:. Commercial use of Docker Desktop at a company of more than 250 employees OR more than $10 million in annual revenue requires a paid subscription (Pro, Team, or Business) to use Docker Desktop. Pricing | Docker