以前、「Docker Desktopと代替ソフトウェア大集合」という記事が弊社ブログにアップされました。
そこで紹介されていた「Finch」というツール、去年の11月末ごろにAWSが公開したのは知っていたんですが、なかなか試せていませんでした。
ということで遅ればせながら私の方でも試してみます。
Finch ???
AWSがOSSで公開したLinuxコンテナをビルド、実行、公開するためのコマンドラインクライアントです。
新しいプロジェクトである Finch は、ローンチ時点では基本的な機能のみを備えています。現時点 (記事公開日: 2022 年 11 月 22 日時点) では macOS のみのサポートであり
今のところmacOSのみサポートみたいですね。
AWS ではコンテナツールに利用できるオープンソースコンポーネントを検討し始め、すぐに Lima の進歩に感銘を受けました。 ... Lima の目標は、containerd と nerdctl を Mac ユーザーに広めることです。 ... AWS のコントリビューターと協力して、Finch と一緒に Lima と nerdctl を改善できることを楽しみにしています
とのことで、Limaとnerdctlをよしなに使えるツールのようです。LimaはWindows subsystem for Linux(WSL)のmacOS版のようなツール、nerdctlはcontainerdをコンテナランタイムにしたDocker互換のCLIツールです。つまり、Docker DesktopをLimaとnerdctlで置き換えよう、しかも簡単にっといったツールでしょうか。LimaだからmacOSのみサポートか、なるほど。
インストール
GitHubリポジトリの方にインストール方法が書いてありました。
brew install --cask finch
お試し
Docker Desktop同様、containerdもLinux VMの中で動いてるので、初回はVMの初期化が必要みたいです。
finch vm init
エラーなく完了したらコンテナの立ち上げをしてみましょう。publicなECRにhello-finch
というコンテナイメージが公開されているようなので、これを使用します。
finch run --rm public.ecr.aws/finch/hello-finch
こんな感じで鳥さん?が表示されたら成功です。
ビルドも試してみます。Finchのリポジトリにはサンプルも入っているようなので、これを使用します。
git clone https://github.com/runfinch/finch.git cd finch/contrib/hello-finch finch build . -t hello-finch
finch images
をすると、今ビルドしたコンテナイメージが確認できます。
hello-finch
が今ビルドしたコンテナです。大丈夫そうですね。
--platform
オプションで、実行するプラットフォームを指定できるようです。私の環境はIntel Macなのでarm64
のコンテナをビルドしてみたいと思います。
finch build . -t hello-finch:arm64 --platform=arm64
arm64
のコンテナイメージができました。
Finchの設定は~/.finch/finc.yaml
です。デフォルトだとcpus
とmemory
だけでしょうか。コア数とメモリ容量ですね。ここをみるとadditional_directories
というのも設定できるようです。
# AdditionalDirectories: the work directories that are not supported by default. In macOS, only home directory is supported by default. # For example, if you want to mount a directory into a container, and that directory is not under your home directory, # then you'll need to specify this field to add that directory or any ascendant of it as a work directory. (optional)
作業用ディレクトリを設定するオプションで、デフォルトだとホームディレクトリのみがサポートされています。ホームディレクトリ以外にあるディレクトリをマウントしたい場合、このオプションにディレクトリを追加することで、その追加されたディレクトリ以下でもマウントすることができるっといった内容でしょうか。README.mdには/Volumes
が追加されています。とくに増やす必要がなければデフォルトのままで十分そうです。
まとめ
今回はFinchのリポジトリにあるREADME.mdを上からなぞる形で実行してみました。Docker DesktopのようにわざわざGUIアプリを起動しなくていいのはいいですね。Most of the commands we use every day are covered, including volume and network management as well as Compose support.
ということで、Docker DesktopからFinchに乗り換えても困らないかもしれません。ただ、乗り換えなくても困らないという人が大半な気がするので、どういう人が対象でしょうか?KubernetesがDockerランタイム非推奨になったのでコンテナランタイムでcontainerdを使っておきたい方とか、Limaいいよね、Limaな方とか、Lima+nerdctlのセットアップが面倒な方にはいいかもしれません。私は………
乗り換えてみます!