とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど

開催予定の勉強会

読者登録と各種SNSのフォローもよろしくお願いいたします。

Podman Desktop利用環境でDocker CLIも使えるようにする

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を手動でインストールしていますので、定期的に手動でアップデートする必要があります。 その点は注意ですね。