🍎
Lima + docker.ymlの設定方法
Docker Desktop for Macから Lima に乗り換えるための設定方法のメモ。
環境
- macOS 11.6.2 (Apple M1)
- Homebrew 3.3.10
初期設定
$ brew install lima
$ curl -O https://raw.githubusercontent.com/lima-vm/lima/master/examples/docker.yaml
# Docker Desktop for Macのデフォルト値と合わせる
$ cat >> docker.yaml <<EOS
cpus: 2
memory: 2GiB
disk: 60GiB
EOS
# そのままEnterする
$ limactl start docker.yaml
? Creating an instance "docker" [Use arrows to move, type to filter]
> Proceed with the default configuration
Open an editor to override the configuration
Exit
$ echo 'export DOCKER_HOST=unix://$HOME/.lima/docker/sock/docker.sock' >> ~/.bashrc
$ rm docker.yaml
ログイン時に自動で起動したい場合は launchd を使用する。
絶対pathが必要なのでユーザ名とhomebrewのpathを適宜書き換える。
~/Library/LaunchAgents/com.github.lima-vm.lima.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.github.lima-vm.lima</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/opt/Homebrew/brew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
<key>ProgramArguments</key>
<array>
<string>/opt/Homebrew/brew/bin/limactl</string>
<string>start</string>
<string>docker</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>AbandonProcessGroup</key>
<true/>
<key>StandardOutPath</key>
<string>/Users/user/Library/Logs/com.github.com.lima-vm.lima/launchd-stdout.log</string>
<key>StandardErrorPath</key>
<string>/Users/user/Library/Logs/com.github.com.lima-vm.lima/launchd-stderr.log</string>
</dict>
</plist>
Docker CLI
既存のDocker Desktopは予め削除する。
- https://docs.docker.com/compose/cli-command/
- https://github.com/docker/compose/releases
- https://github.com/docker/buildx/releases
$ brew install docker docker-credential-helper
$ mkdir -p ~/.docker/cli-plugins
$ curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-darwin-aarch64 -o ~/.docker/cli-plugins/docker-compose
$ chmod +x ~/.docker/cli-plugins/docker-compose
$ curl -SL https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.darwin-arm64 -o ~/.docker/cli-plugins/docker-buildx
$ chmod +x ~/.docker/cli-plugins/docker-buildx
初期化方法
# 設定ファイルは ~/.lima/docker 以下にある
$ limactl delete docker
$ limactl prune
おまけ
testcontainers-javaの設定
testcontainers-java を使用している人は、testcontainers/ryukが動かないので以下の環境変数を設定する必要がある。
export TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=/run/user/[uid]/docker.sock
[uid]
はvm内で id
もしくは docker context ls
を実行することで確認できる。
(以下の例だと uid=502
)
$ limactl shell docker
lima@lima-docker:~$ id
uid=502(lima) gid=1000(lima) groups=1000(lima)
lima@lima-docker:~$ docker context ls
NAME DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR
default Current DOCKER_HOST based configuration unix:///var/run/docker.sock swarm
rootless * Rootless mode unix:///run/user/502/docker.sock
Discussion