Docker Desktopの代替、Container Desktop
(container-desktop.com)- Container Desktopは、Podman、Docker、Apple™ Containerを1つの画面で扱える無料のオープンソースデスクトップUIで、Windows・macOS・Linuxのすべてをサポートする
- ローカルエンジンだけでなく、SSHリモート接続、Windows WSL、macOS LIMA、Apple siliconのApple™ Containerまで、1つのマネージャーで切り替えられる
- コンテナごとのログ、状態、環境変数、マウント、ポート、統計、内蔵ターミナル、ブラウザで開く機能など、日常的な運用作業をUIで処理できる
- イメージ、イメージセキュリティ、Pod、ネットワーク、シークレット、ボリューム管理に加えて、テーマ・フォント・起動方式・トレイ・更新・ログレベル設定をサポートする
- MITライセンスのアプリであり、Linux・macOS・Windows向けのネイティブパッケージとMicrosoft Storeでの配布を提供する
Container Desktopの役割
- Container Desktopは、Podman、Docker、Apple™ Container向けのデスクトップUI
- Windows、macOS、Linuxで同じ方法でコンテナ環境を扱える
- ローカルエンジン、SSHリモート、WSL環境を1つのUIで管理する
- 無料のオープンソースアプリで、ライセンスはMIT
- 公式Podmanチームが作ったアプリが必要な場合は、Podman Desktopも別途ある
エンジンと接続方式
- 1つのマネージャーで複数のコンテナエンジンと接続方式を切り替えられる
- Linuxのネイティブエンジン
- 仮想化されたエンジン
- macOSのLIMA
- WindowsのWSL
- Apple siliconのApple™ Container
- SSHリモート接続
- 対応対象にはPodman、Docker、Apple™ Container、LIMA、WSL、SSHが含まれる
コンテナ運用画面
- コンテナの出所と状態を確認できる
- コンテナごとのログ、環境変数、マウント、ポート、ライブ統計を見られる
- 起動、停止、再起動といった基本操作を行う
- 内蔵ターミナルコンソールを開いてコンテナにアクセスできる
- 公開されたサービスはブラウザで直接開ける
- 同じ作業フローがPodman、Docker、Apple™ Containerで共通して動作する
イメージ・Pod・ネットワーク・シークレット・ボリューム管理
-
Images
- イメージをpull、build、inspectできる
- カスタムポートとマウントでコンテナを作成できる
-
Image security
- 既知の脆弱性を把握し、システムの安全性を維持する機能を提供する
-
Pods
- Podのログ、プロセス、詳細情報を確認できる
- kube生成機能を提供する
-
Networks
- ネットワークを作成して再利用できる
- ネットワークごとの詳細設定を扱える
-
Secrets
- 環境全体のシークレットを定義、確認、削除できる
-
Volumes
- コンテナ間でのボリューム共有をサポートする
設定とデバッグのしやすさ
- テーマと等幅フォントを設定できる
- アプリの起動方式、システムトレイの動作、アップデート制御を調整する
- ログレベルを選択できる
- 設定とログが保存される場所を表示する
- ログと設定の保存場所が明確で、デバッグしやすい構成を志向している
マニュアルとインストールパッケージ
- Manualは、エンジンやプラットフォームごとの設定ガイドを提供し、コピー&ペーストできるコマンドを含む
- Linuxガイドには、クイックスタート、PodmanをDockerのように使う方法、Docker Desktopの代替、接続共有が含まれる
- macOSガイドでは、colimaクイックスタート、LIMAベースのPodman・Docker、PodmanをDockerのように使う方法、Apple™ Container、接続共有を扱う
- Windowsガイドには、WSLの設定と要件、クイックスタート、PodmanをDockerのように使う方法、カスタムインストール、ヒントが含まれる
- ダウンロードはv5.3.7時点でプラットフォーム別のネイティブパッケージを提供する
- Linux: x86_64・arm64向け
.deb,.rpm,.tar.gz,.AppImage,.pacman - macOS: Apple silicon向け
.dmg, portable.tar.gz - Windows: x64向け Microsoft Store, インストーラー版
.exe, portable.zip
- Linux: x86_64・arm64向け
2件のコメント
数年前からposmanというものがあるのは知っていましたが、バグがかなり多く、煩わしい部分も多いと聞いていました。最近はかなり改善されましたか?
Hacker News の意見
Kubernetes 対応は計画していて、私の DevOps 担当者がぜひ入れてほしいと強く望んでいる
ここにいる多くの人はパワーユーザーなので、UI を必要かどうか判断する視覚的な詩のように見ているようだ
これは商用プロジェクトではなく、ビジネス目標に従っているわけでもないが、それは品質を諦めるという意味ではない。あらゆる場面で最小限のリソース使用、簡単な体験、優れた UI/UX を提供しようとしている
開発者コンソールを開けば裏で何をしているのかすべて説明してくれ、ある時点でユーザーが理解し、スクリプトと仕様で自動化できるよう助けるツールになり得る
最近はユーザーを賢すぎるか愚かすぎるかのどちらかとして見がちだが、私はそうは見ていない。誰もがどこかから始めたのであり、段階的に学べる体験が最も良いと思う
子どもの頃、ラジオやおもちゃをたくさん壊し、中に何があるのかのぞき込んで多くを学んだ。このプロジェクトは一人が仕事の後、そして外で雨が降っている時に作っている。ベルギーは雨が多い
ローカルで Docker コンテナを動かしたいことは分かっていて、その仕組みも分かっているが、実行に必要ないくつかのコマンドをプロンプトで打ちたくない人たち、というのが正確にはどんな交差部分なのかよく分からない
containerd や kata と直接連携する形だと推測しているが、もっと知りたい。ひとつ要望できるなら、systemd を直接使うオプションがあるとよい。今では systemd がコンテナ実行に必要な機能をかなりよく備えているからだ
podman play kubeのような Podman の Kubernetes 風機能を指しているのか、それとも Kubernetes そのものを指しているのか気になるそれを通じてシステム管理や Docker を深く学べるわけではないが、chef や puppet のような別の DSL ではなく YAML だけを知っていれば、サーバーで複数のサービスを簡単に動かせる感覚は得られる
格好よく見えるが、Kubernetes 対応がどうなっているのか気になる。会社で Docker Desktop を使っている大きな理由の一つが、ローカル Kubernetes クラスターを立ち上げ、そこにサービスをデプロイするためだからだ
k3s を使う Rancher Desktop も対応しているが、k3s は Docker Desktop が構成する Kubernetes ディストリビューションよりも良い選択と言えるかもしれない
最近 OrbStack を使ってみたところ、ほぼ即座に起動し、Kubernetes も起動に最大 2 秒ほどしかかからない。UI はミニマルだが、コンテナ、Pod、サービス、ログなどを確認するには十分で、メモリ使用量とバッテリー消費も非常に軽い。個人的には OrbStack を使ってから Docker や Rancher Desktop には戻れなくなった
OrbStack は Kubernetes サービスドメインをホストから直接使えるようにしてくれるので、
kubectl port-forwardが不要で、ホストで実行されるアプリケーションも Kubernetes クラスター内部と同じ設定を使えるバッテリー節約、動的メモリ使用、高速な起動時間、利便性の面で、OrbStack が Docker Desktop 代替の基準になった。container-desktop がこの要件をすべて満たすかは分からないし、Rancher Desktop は確実に満たしていない
Docker Desktop の代替として Rancher Desktop を macOS と Windows で使ってきたが、かなり安定している: https://rancherdesktop.io/
まだ磨くべき部分はあるが、IDE とも接続して使えたし、たとえば Intellij IDEA の Docker Compose 統合も動作させられた
もう一つ良い点は、
docker-composeコマンドラインツールを使う既存のスクリプトなどが Rancher Desktop でも動くことだ。内部的に nerdctl を使用しているためだ: https://github.com/containerd/nerdctldocker buildでイメージを作った後、イメージを正しく「load」するコマンドを 10 分ずつ検索しなくても、すぐに Kubernetes Pod として起動できるRed Hat の支援がかなり手厚い Podman Desktop も見てみることを勧める
https://podman-desktop.io/
macOS なら OrbStack が Docker Desktop の良い代替になる
OrbStack とは何の関係もない
一度に50〜100ドルを払って永久ライセンスを得られるなら喜んで支払うし、関連する面倒を避けたい
自分も関係者ではなく、OrbStack はまだ試していない
Colima も試したし、OrbStack が選択肢になければ Colima を使い続けても満足していたと思う
現在 colima を使っているが、自分がよく使う UDP ポートフォワーディングをサポートする他の代替を見つけられず残念
幸い lima に UDP 対応の新しいポートフォワーダーがマージされた [0]。リリースに含まれれば、近いうちに使えることを期待している
[0]: https://github.com/lima-vm/lima/commit/13e9cbcabc6a0a05ec389...
OrbStack をとても満足して使っている: https://orbstack.dev/
Linux VM と Kubernetes もサポートしているが、Kubernetes はまだ使っていない
これが Podman Desktop にない何を提供するのか気になる
https://podman-desktop.io/
docker-compose.ymlサポートはかなり限定的だった。変わったのか気になる少し別件の不満だが、Podman はイメージビルド中の ホストマウントを許可する一方、Docker はそうではない
Podman を使うモノレポがこの機能を活用してソースからコンテナイメージを作っていたが、Docker で同じことを実現しようとすると毎回モノレポを Docker ビルドコンテキストにコピーする必要があり、大きな悩みの種だった
M1 サポートのために Docker を使う必要があったが、おそらく Colima のようなものを試すべきだったのだと思う
Mac で Colima にはおおむね満足しているが、これも Docker Desktop の良い代替に見える
こうしたデスクトップ UI が colima にはまったくない何を提供するのか気になる
[0]
colima start --vm-type=vz --vz-rosetta