AWSの公開したFinchでDockerコンテナを動かす
Dec 11, 2022 10:45 · 1375 words · 3 minute read
AWSから公開されたFinchを使ってみたので、試した内容をメモしておきます。
目次
Finchとは?
AWSが公開しているオープンソースのコンテナ操作コマンドライン クライアントです。
内部的にはLima、nerdctl、containerd、BuildKitが使われているようです。これらをパッケージングし、簡単にインストールと実行ができる状態にしてくれています。
2022年12月現在はmacOS版のみですが、将来的にはWindows版やLinux版の開発も予定されているようです。
- コンテナ開発用のオープンソースクライアント「Finch」のご紹介 | Amazon Web Services ブログ
- runfinch/finch: The Finch CLI an open source client for container development (github.com)
インストールと初期化
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にはとてもお世話になっているので、ちゃんとお金を払って開発を継続してもらいたいという気持ちはあります。 が、個人の気持ちと予算はまた別の問題でして。。。