久々すぎて記事の書き方忘れたわ
インストール
自力でインストールする方法もあるけどbrew使ったほうが1000倍早い
brew install lima
起動してみる
コマンドは大きく2つ
まずは新規作成してみる 「Proceed with the default configuration」にカーソル合わせてエンター
$ limactl start ? Creating an instance "default" [Use arrows to move, type to filter] > Proceed with the default configuration Open an editor to override the configuration Exit
色々ダウンロードが始まるが、しばらくすると完了と言われる。
INFO[0051] READY. Run `lima` to open the shell.
実際にlimaを操作するにはlimaコマンド
thr3a@lima-default:~$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=21.10 DISTRIB_CODENAME=impish DISTRIB_DESCRIPTION="Ubuntu 21.10"
引数で直接コマンドを実行することもできる
$ lima uname -a Linux lima-default 5.13.0-22-generic #22-Ubuntu SMP Fri Nov 5 13:21:36 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
終了
$ limactl stop
一覧表示
$ limactl ls NAME STATUS SSH ARCH CPUS MEMORY DISK DIR default Running 127.0.0.1:60022 x86_64 4 4GiB 100GiB /Users/thr3a/.lima/default
コンテナの起動
Dockerっぽく使える。
$ lima nerdctl run -d --name nginx -p 127.0.0.1:8080:80 nginx
ただDockerコマンドと完全に互換性があるわけではないっぽい。
例えば -d オプションと --rm オプションを同時に使えない
$ lima nerdctl run -d --rm -p 8080:80 nginx FATA[0000] flag -d and --rm cannot be specified together
なんでや、、、
Dockerコマンドで使う
limaでコンテナの操作は難しい。そこでホスト側にdockerクライアントをインストールして接続して使ってみる
まずはMac側にクライアントインストール
$ brew install docker
確認 ホスト側にDockerデーモンをインストールしてないので当然「Is the docker daemon running?」と怒られる。
$ docker version Client: Docker Engine - Community Version: 20.10.11 API version: 1.41 Go version: go1.17.2 Git commit: dea9396e18 Built: Wed Nov 17 23:49:46 2021 OS/Arch: darwin/amd64 Context: default Experimental: true Cannot connect to the Docker daemon at unix:////Users/thr3a/.lima/docker/sock/docker.sock. Is the docker daemon running?
次にDocker用のインスタンスを建てるために設定をダウンロード
$ curl https://raw.githubusercontent.com/lima-vm/lima/master/examples/docker.yaml > docker.yaml
起動。Open an editor to override the configurationを選択
$ limactl start ./docker.yaml
基本的にデフォルトのままでいいが、ホームディレクトリをマウントして作業することは多いので書き込みOKにしておく
mounts: - location: "~" writable: true
中に入るとdockerコマンドが使える
➜ ~ limactl shell docker thr3a@lima-docker:/Users/thr3a$ docker --version Docker version 20.10.11, build dea9396
とはいえ、結局はdockerコマンドでできたほうが便利なので設定
# To run `docker` on the host (assumes docker-cli is installed): # $ export DOCKER_HOST=$(limactl list docker --format 'unix://{{.Dir}}/sock/docker.sock') # $ docker ...