LoginSignup
286

More than 1 year has passed since last update.

Docker Desktop の代わりになるかも。AWS が OSS として公開した「Finch」を使ってみた。

Last updated at Posted at 2022-11-24

概要

  • 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に期待!

参考文献

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
286