limaを使ってQEMUでApple Silicon上のx86_64用Docker Daemonを起動するメモ
普段はDocker DaemonとしてOrbStackを使用しているが、Apple SiliconのMac上でx86_64との互換性の問題が起きやすいので、 互換性の問題が起きた時の代替としてVM(QEMU)でx86_64用Docker Daemonを起動する。
limaをインストール。
brew install lima
Docker用のtemplateを使ってlimaをVMを起動。
limactl start --name=build --arch=x86_64 --tty=false --mount-writable template://docker
Mac上でDockerのcontextを設定。
docker context create lima-build --docker "host=unix:///Users/tmaki/.lima/build/sock/docker.sock"
docker context use lima-build
Mac上でDocker contextを確認。
$ docker context ls
NAME DESCRIPTION DOCKER ENDPOINT ERROR
default Current DOCKER_HOST based configuration unix:///var/run/docker.sock
lima-build * unix:///Users/tmaki/.lima/build/sock/docker.sock
orbstack OrbStack unix:///Users/tmaki/.orbstack/run/docker.sock
Mac上でdocker runを実行。
docker run --rm hello-world
VMにログイン。
limactl shell build
VM上でDocker contextを確認。
$ docker context list
NAME DESCRIPTION DOCKER ENDPOINT ERROR
default Current DOCKER_HOST based configuration unix:///var/run/docker.sock
rootless * Rootless mode unix:///run/user/503/docker.sock
おまけ1。kubectlのインストールメモ。
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
おまけ2。tanzuのインストールメモ。
curl -fsSL https://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-RSA-KEY.pub | sudo gpg --dearmor -o /etc/apt/keyrings/tanzu-archive-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/tanzu-archive-keyring.gpg] https://storage.googleapis.com/tanzu-cli-os-packages/apt tanzu-cli-jessie main" | sudo tee /etc/apt/sources.list.d/tanzu.list
sudo apt update
sudo apt install -y tanzu-cli