🚀
Docker Desktop の代わりになるかも。AWS が OSS として公開した「Finch」を使ってみた。
概要
- 2022/11/23 に唐突に公開された Finch なるOSSがAWSより公開されました。
- どうやら、Docker Desktopの代わりとなりそうな、ローカルマシン上に仮想環境とコンテナランタイム、ビルドツールなどを一式を楽〜に導入できるツールっぽいので試してみたという内容です。
Finchとは
- つい先日(2022/10/27)に、Docker社が、Docker の Team プラン、Business プランを値上げするニュースが発表された。期限も短く、急いで対応に追われた企業も多いのではないでしょうか・・・
- まさかこのタイミングでという感じですが、AWS よりローカルマシン上に仮想環境とコンテナランタイム、ビルドツールなどを一式を楽〜に導入できるツールが OSS として公開されました。
- ちなみに、ローカルマシン上でコンテナの開発環境を整えるには、仮想マシン上にLinuxを用意し、その上でコンテナランタイム、ビルドツール、コマンドライン等を準備する必要があります。
- それを意識せず楽〜に用意してくれるのが、みなさんご存知の Docker Desktop でした。
じゃあ、Finchは??
-
Finch は、仮想マシン上をMAC上に構築するLima、コンテナランタイムのcontainerd、ビルドツールのBuildKit、containerd経由でコンテナを操作できるコマンドラインのnerdctlなどを一式用意し、簡単にコンテナの開発環境を整えてくれます。
-
現時点では M1 Apple Silicon の Mac/ Intel ベースの Mac のアーキテクチャのイメージをビルドできます。
-
ただ、今後 Windows や Linux にも対応したいと考えているようです。
Finch でできること
- Finch は nerdctl(コマンドラインツール) と直接統合されているため、Dockerで使っていたコマンドとオプションはすべて、いい感じに実行できているように動作します。
- なので、レジストリからイメージをプルして、コンテナをローカルマシンで実行し、既存の Dockerfile を使用してイメージをビルドすることができます。
- 最初の起動では、ボリュームとネットワークのサポートが用意されています。
- また、compose も複数のコンテナアプリケーションを実行およびテストするためにサポートされています。
- 注意点: Finch には現時点で GUI がなく、クラスター管理やその他のコンテナオーケストレーションツールを追加で統合はしていない。単純なコマンドラインクライアントを提供しています。
やってみた
環境
- Apple M1 Pro
- RAM 16 GB
導入
- まずは、Finch を macOS にインストールします。
- 最新のリリースパッケージをダウンロードします。
-
今回は、M1 Mac を使用しているので、「Finch-v0.1.0-aarch64.pkg」をダウンロードします。
-
インストール後、Finch の仮想環境を初期化して開始する必要があるので、下記のコマンドを実行して VM を起動します。
-
初期設定には約 1 分くらいかかります。「Finch virtual machine started successfully」が表示されたら完了。
$ finch vm init
INFO[0000] Initializing and starting Finch virtual machine...
..
INFO[0067] Finch virtual machine started successfully
再起動時
- Finch の仮想環境を開始するためには、以下のコマンドを実行します。
$ finch vm start
停止時
- Finch の仮想環境を終了するためには、以下のコマンドを実行します。
$ finch vm stop
コンテナを動かしてみた
- 仮想環境が準備できたので、コンテナを実行してみましょう。
- ecrにある 事前に用意されているイメージを起動してみましょう。
$ finch run --rm public.ecr.aws/finch/hello-finch
@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@ @@@@@@@@@@@
@@@@@@@ @@@@@@@
@@@@@@ @@@@@@
@@@@@@ @@@@@
@@@@@ @@@# @@@@@@@@@
@@@@@ @@ @@@ @@@@@@@@@@
@@@@% @ @@ @@@@@@@@@@@
@@@@ @@@@@@@@
@@@@ @@@@@@@@@@@&
@@@@@ &@@@@@@@@@@@
@@@@@ @@@@@@@@
@@@@@ @@@@@(
@@@@@@ @@@@@@
@@@@@@@ @@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@
Hello from Finch!
Visit us @ github.com/runfinch
composeを試してみよう
- 次は、compose を試してみます。
- 使用するサンプルソースは、yelbを使います。
$ tree .
.
├── README.md
├── docker-compose.yaml
└── stack-deploy.yaml
0 directories, 3 files
$ finch compose up -d
INFO[0000] Creating network docker_yelb-network
INFO[0000] Creating network docker_default
INFO[0000] Ensuring image redis:4.0.2
INFO[0000] Ensuring image mreferre/yelb-db:0.6
INFO[0000] Ensuring image mreferre/yelb-appserver:0.6
INFO[0000] Ensuring image mreferre/yelb-ui:0.10
INFO[0000] Creating container docker_yelb-ui_1
INFO[0000] Creating container docker_yelb-appserver_1
INFO[0000] Creating container docker_redis-server_1
INFO[0000] Creating container docker_yelb-db_1
まとめ
- GUI とかないけど、全然快適に使えましたね。!
- これ、AWSのサービスとかと統合されたら、マジやばいんじゃ・・・・
- 今年の re:Inventに期待!
参考文献
Discussion