0
2

More than 1 year has passed since last update.

Lima入門

Last updated at Posted at 2023-08-20

はじめに

Mac環境でもDocker Desktopを卒業するべく、Docker on Limaを触ってみました。

環境

ホストOS:macOS Vetntura 13.4.1
プロセッサ:1.4GHz デュアルコアIntel Core i7
VM:Docker on Lima
limactl:0.17.0

1.各種インストール

LimaでDockerを扱うため、docker、docker-compose、limaをそれぞれインストールしていきます。

1-0.Homebrewをインストール

docker類をインストールするために、homebrewを使用します。
公式を参考にインストールします。

1-1.dockerをインストール

% brew install docker
% docker -v
Docker version 24.0.5, build ced0996600

1-2.docker-composeをインストール

% brew install docker-compose
% docker-compose -v          
Docker Compose version 2.20.3

1-3.limaをインストール

% brew install lima

limaをインストールするとlimaを制御するlimactlコマンドがインストールされます。

% limactl -v
limactl version 0.17.2

2.limaでdockerを扱うための準備

2-1.limaインスタンスを作成

現状確認

limaをインストールするとdefaultインスタンスが最初から作成されています。
今回は、自分で新規インスタンスを作成してdockerを扱うようにしてみます。

まず、現状を確認。

% limactl ls           
NAME       STATUS     SSH                VMTYPE    ARCH      CPUS    MEMORY    DISK      DIR
default    Running    127.0.0.1:60022    qemu      x86_64    4       4GiB      100GiB    ~/.lima/default

設定ファイルを取得

Limaのインスタンスを作成するにはyaml形式の設定ファイルを指定します。
Limaのリポジトリにテンプレート例が複数パターン用意されてるので、
そちらを利用してインスタンスを作成します。

今回はdocker.yamlを利用します。

Linuxインスタンスを作成

「limactl start」でインスタンスを作成・起動します。
コマンド実行直後に設定の適用方法について選択肢が出ます。
今回はコマンドで指定したyamlファイルを使用するので「Proceed with the current configuration」を選択します。

% limactl start --name=develop ~/docker.yaml
? Creating an instance "develop"  [Use arrows to move, type to filter]
> Proceed with the current configuration
  Open an editor to review or modify the current configuration
  Choose another template (docker, podman, archlinux, fedora, ...)
  Exit

起動後、「limactl list」でLinuxインスタンスを一覧し、「develop」が表示されてstatusも「Running」になっていればOKです。

% limactl list                                                
NAME       STATUS     SSH                VMTYPE    ARCH      CPUS    MEMORY    DISK      DIR
default    Running    127.0.0.1:60022    qemu      x86_64    4       4GiB      100GiB    ~/.lima/default
develop    Running    127.0.0.1:55839    qemu      x86_64    4       4GiB      100GiB    ~/.lima/develop

2-2.Dockerコンテキストを作成

続いて、作成したLinuxインスタンス「develop」で扱うDockerコンテキストを作成します。

現状確認

「docker context ls」でDockerコンテキストを確認します。

% docker context ls
NAME            DESCRIPTION                               DOCKER ENDPOINT                                      ERROR
default *       Current DOCKER_HOST based configuration   unix:///var/run/docker.sock                          
desktop-linux   Docker Desktop                            unix:///Users/xxx/.docker/run/docker.sock 

こちらもdefaultとdesktop-linuxしかないので、新規コンテキストを作成していきます。

新規コンテキストを作成

「docker context create」でコンテキストを作成できるので、developインスタンス用に新規作成します。
limaをインストールした時、ホームディレクトリ直下に「.lima」が作成されているので、
コマンド実行時にdevelopインスタンスのdocker.sockを指定します。

% docker context create develop --docker "host=unix:///Users/$USER/.lima/develop/sock/docker.sock"
develop
Successfully created context "develop"

コンテキストを確認

% docker context ls                                                                               
NAME            DESCRIPTION                               DOCKER ENDPOINT                                             ERROR
default *       Current DOCKER_HOST based configuration   unix:///var/run/docker.sock                                 
desktop-linux   Docker Desktop                            unix:///Users/xxx/.docker/run/docker.sock          
develop                                                   unix:///Users/xxx/.lima/develop/sock/docker.sock

developコンテキストが作成ましたが、 「*」マークはdefaultに表示されてます。
カレントのDockerホストはdefaultのままということなので、続けてDockerホストも切り替えます。

コンテキストの切り替え

「docker context use」でdevelopをカレントコンテキストに選択します。

% docker context use develop
develop
Current context is now "develop"

コンテキストを再度確認

% docker context ls         
NAME            DESCRIPTION                               DOCKER ENDPOINT                                             ERROR
default         Current DOCKER_HOST based configuration   unix:///var/run/docker.sock                                 
desktop-linux   Docker Desktop                            unix:///Users/xxx/.docker/run/docker.sock          
develop *                                                 unix:///Users/xxx/.lima/develop/sock/docker.sock

指定したコンテキストに「*」が付いていれば切り替えOKです。

3.動作検証

コンテナイメージをプルしてみる

nginxのコンテナイメージをプルしてみてDockerが使用出来ることを確認してみます。

% docker pull nginx    
Using default tag: latest
latest: Pulling from library/nginx
52d2b7f179e3: Pull complete 
・・・
Digest: sha256:104c7c5c54f2685f0f46f3be607ce60da7085da3eaa5ad22d3d9f01594295e9c
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

コンテナイメージを確認

% docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
nginx        latest    eea7b3dcba7e   3 days ago   187MB

無事、コンテナイメージをプルできました。

参考文献

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2