Podman DesktopとPodmanの組み合わせを使うと、Dockerの代わりにPodmanを使えて良いのですが、Linux版Podmanのようにpodman-docker
のようなパッケージはWindowsやmacOS向けには用意されていないため、そのままではDockerコマンドを使うことができません(Docker Desktopが一緒にインストールされている場合は除く)。
ここで問題となるのがVSCodeのDocker拡張です。 VSCodeのDocker拡張は、Docker CLIがインストールされていない状況では使えないのです。
現在のPodmanは、Docker APIを振る舞う機能が実装されています。そのため、CLIを用意してパスを通せばなんとかなりそうです。
Docker CLIのインストール
Docker CLIは以下からダウンロードできます。ダウンロードするときはOSとアーキテクチャーを間違えないように気をつけましょう。
ダウンロードしたファイルを展開して、アーカイブに含まれるdockerという実行ファイルをパスが通っているディレクトリーにコピーします。
例えば私の場合はmacOSを使っていますので、/usr/local/bin
にコピーしましょう...っとその前に、docker
実行ファイルをOptionキーを押しながら「開く」をクリックしてください。メッセージが出るのでそのまま「開く」を押すと、Dockerのヘルプがターミナルに出力されるはずです。
準備ができたら、Docker CLIをコピーします。
sudo cp ./docker /usr/local/bin
VSCodeを開き直して、Dockerのアイコンをクリックすると、コンテナーとイメージの部分でエラーが表示されなくなるはずです。
お疲れ様でした。もう、Docker Desktopを入れておく必要は無くなりました。
おまけ
試しにDoker CLIを使ってみましょう。実際のイメージやコンテナーはPodman上で実行されており、Podman CLIやPodman Desktopから確認できると思います。
% docker image pull redhat/ubi8-micro Using default tag: latest 3639f8815fcd: Download complete f57f74091bcc: Download complete docker.io/redhat/ubi8-micro:latest % docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE redhat/ubi8-micro latest f57f74091bcc 5 weeks ago 30.3MB % docker container run --name test -d -it redhat/ubi8-micro a9eeae5b61920e269da70376ac7c9161e121371ad23ad808fa571bad1e7aeecc % docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a9eeae5b6192 redhat/ubi8-micro:latest "/bin/sh -c /bin/sh" 10 seconds ago Up 9 seconds test
私はDockerもDocker Desktopも嫌いではありませんが、PodmanやPodman DesktopがDockerの代替手段の一つとして使えるのは、ユーザーの選択肢が増えるという意味で良いことだと思っています。最終的にどれを使うかはユーザーが決めることですから。
注意事項
今回Docker CLIを手動でインストールしていますので、定期的に手動でアップデートする必要があります。 その点は注意ですね。