LoginSignup
3
5

More than 1 year has passed since last update.

Dockerの代替になりそうなFinchを使ってみる

Posted at

はじめに

普段仕事でDockerを使っているが、AWSがその代替となるFinchを発表しました
興味があったので自分の勉強メモとして残しておきます。

セットアップ

自分のインストール環境は以下です。

> uname -a
Darwin XXXXX-MacBook-Pro.local 22.1.0 Darwin Kernel Version 22.1.0: Sun Oct  9 20:15:09 PDT 2022; root:xnu-8792.41.9~2/RELEASE_ARM64_T6000 arm64

インストールを行うためにまずこちらのurlから自分のOSにあったパッケージをダウンロード、インストールします。自分が使っている環境はMacOSのM1 proのためFinch-v0.1.0-aarch64.pkgをインストールします。

出てきた画面をぽちぽち選べばインストールは完了します。

チュートリアルの写経

finchにはDocker desktopnのようなGUIは現状ないため、基本コマンドで操作することになります。インストール後にはまず下記のコマンドを実行し、Finchの仮想環境を初期化する必要があります。初期化の際にパスワードを求められます。自分は一回エラーに当たって少し手こずったのですが、解決策は後述します。

❯ finch vm init

初期化が完了したら、下記コマンドでサンプルのコンテナを立ち上げてみます。

❯ finch run --rm public.ecr.aws/finch/hello-finch


                            @@@@@@@@@@@@@@@@@@@
                        @@@@@@@@@@@@    @@@@@@@@@@@
                      @@@@@@@                  @@@@@@@
                    @@@@@@                        @@@@@@
                  @@@@@@                            @@@@@
                 @@@@@                      @@@#     @@@@@@@@@
                @@@@@                     @@   @@@       @@@@@@@@@@
                @@@@%                     @     @@            @@@@@@@@@@@
                @@@@                                               @@@@@@@@
                @@@@                                         @@@@@@@@@@@&
                @@@@@                                  &@@@@@@@@@@@
                 @@@@@                               @@@@@@@@
                  @@@@@                            @@@@@(
                   @@@@@@                        @@@@@@
                     @@@@@@@                  @@@@@@@
                        @@@@@@@@@@@@@@@@@@@@@@@@@@
                            @@@@@@@@@@@@@@@@@@


Hello from Finch!

Visit us @ github.com/runfinch

docker-composeと少し比較

サンプルのdjangoプロジェクトを用意しました。
Dockerfileとdocker-compose.ymlを用意し、自分がよく使うコマンドが使えるかどうかを確認します。

コンテナの起動、確認、停止

docker-composeでよく使う起動、停止などは問題なく使用できそうです。
試しにfinchで作成したコンテナにlocalhost:8000にアクセスしたところ、djangoの画面が表示されたので問題なく使用できそうです。

docker

❯ docker-compose -f docker-compose.yaml up -d --build
[+] Building 2.1s (12/12) FINISHED
...
[+] Running 2/2
 ⠿ Container learn_finch-db-1   Started                                    
 ⠿ Container learn_finch-web-1  Running

❯ docker-compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
learn_finch-db-1    "docker-entrypoint.s…"   db                  exited (1)
learn_finch-web-1   "pipenv run python b…"   web                 running             0.0.0.0:8000->8000/tc

❯ docker-compose down
[+] Running 3/1
 ⠿ Container learn_finch-web-1  Removed                                                              0.2s
 ⠿ Container learn_finch-db-1   Removed                                                              0.0s
 ⠿ Network learn_finch_default  Removed                                                              0.1s

finch

❯ finch compose up -d
...
INFO[0009] Building image learn_finch_web
...
INFO[0039] Creating container learn_finch_web_1

❯ finch compose ps
NAME                 COMMAND                   SERVICE    STATUS                           PORTS
learn_finch_db_1     "docker-entrypoint.s…"    db         Exited (1) About a minute ago
learn_finch_web_1    "pipenv run python b…"    web        running                          0.0.0.0:8000->8000/tcp❯ finch compose ps

❯ finch compose down
INFO[0000] Removing container learn_finch_web_1
INFO[0000] Removing container learn_finch_db_1
INFO[0000] Removing network learn_finch_default

dockerとfinchのコマンド比較

しっかり書こうと思ったのですが、下記のコマンド全てを把握するのは個人の技量的に難しそうだったので、helpで表示されたコマンドを貼っておきます。
dockerとfinchそれぞれの挙動を確認しているわけではないので、ご了承ください。

command docker finch
attach
build
builder
commit
completion
compose
cp
create
diff
events
exec
export
history
image
images
import
info
inspect
kill
load
login
logout
logs
network
pause
port
ps
pull
push
restart
rename
restart
rm
rmi
run
save
search
start
stats
stop
system
tag
top
unpause
update
version
vm
volume
wait

さいごに

finch、完全にDockerの代替を狙っていますね。。。
従来のDockerfileやcompose.yamlが使え、さらにAWSサービスとうまく連携できるならもうこれでいいのでは?と思ってきました。今後のアップデートに期待です。

3
5
0

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
3
5