AWSの公開したFinchでDockerコンテナを動かす

Dec 11, 2022 10:45 · 1375 words · 3 minute read Docker

AWSから公開されたFinchを使ってみたので、試した内容をメモしておきます。

目次

Finchとは?

AWSが公開しているオープンソースのコンテナ操作コマンドライン クライアントです。

内部的にはLima、nerdctl、containerd、BuildKitが使われているようです。これらをパッケージングし、簡単にインストールと実行ができる状態にしてくれています。

2022年12月現在はmacOS版のみですが、将来的にはWindows版やLinux版の開発も予定されているようです。

インストールと初期化

brewコマンド一発でインストールが完了します。

brew install --cask finch
・・・
installer: Package name is Finch
installer: Installing at base path /
installer: The install was successful.
🍺  finch was successfully installed!

初回実行時はSetupが必要です。

finch vm init
INFO[0000] binaries directory doesn't exist             
INFO[0000] Requesting root access to finish network dependency configuration 
Password:
INFO[0004] sudoers file not found: open /etc/sudoers.d/finch-lima: no such file or directory 
INFO[0004] Initializing and starting Finch virtual machine... 
INFO[0209] Finch virtual machine started successfully

デフォルトでは下記の設定でした。

cat ~/.finch/finch.yaml 
cpus: 2
memory: 8GiB

コンテナを実行してみる

Docker Hubに公開されているイメージを実行してみます。
dokcerコマンドをfinchに置き換えるだけで大体思った通りに動くので、違和感無く使えそうです。

finch container run -it --name finch-test-ubuntu --rm ubuntu:22.04

ヘルプの内容はこんな感じ。

finch -h
Finch: open-source container development tool

Usage:
  finch [command]

Available Commands:
  build       Build an image from Dockerfile
  builder     Manage builds
  commit      Create a new image from a container's changes
  completion  Generate the autocompletion script for the specified shell
  compose     Compose
  container   Manage containers
  create      Create a new container
  events      Get real time events from the server
  exec        Run a command in a running container
  help        Help about any command
  history     Show the history of an image
  image       Manage images
  images      List images
  info        Display system-wide information
  inspect     Return low-level information on Docker objects
  kill        Kill one or more running containers
  load        Load an image from a tar archive or STDIN
  login       Log in to a container registry
  logout      Log out from a container registry
  logs        Fetch the logs of a container
  network     Manage networks
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  ps          List containers
  pull        Pull an image from a registry
  push        Push an image or a repository to a registry
  restart     Restart one or more containers
  rm          Remove one or more containers
  rmi         Remove one or more images
  run         Run a command in a new container
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  system      Manage containerd
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  version     Show Finch version information
  vm          Manage the virtual machine lifecycle
  volume      Manage volumes
  wait        Block until one or more containers stop, then print their exit codes

Flags:
      --debug     running under debug mode
  -h, --help      help for finch
  -v, --version   version for finch

Use "finch [command] --help" for more information about a command.

その他(ComposeやDocker Hubでイメージを公開)

今回は試していませんが、docker-composeコマンドのように複数のコンテナを実行したり、Docker HubにイメージをPushして公開することも問題なくできるようです。

AWSが公開したFinchでコンテナ実行/イメージビルドをする | 豆蔵デベロッパーサイト (mamezou-tech.com)

最後に

予算や利用頻度の都合で、Docker Desktop有料化以降はRancher Desktopを使っていました(※)。 しかし、私の用途ではdockerコマンドとdocker-composeコマンドが使えれば十分で、正直オーバースペック感がありました。

FinchはRancher Desktopと比較して軽量でシンプルに感じたので、応援する意味も込めてしばらくFinchに乗り換えてみようと思います。

※Dockerにはとてもお世話になっているので、ちゃんとお金を払って開発を継続してもらいたいという気持ちはあります。 が、個人の気持ちと予算はまた別の問題でして。。。

tweet Share