経緯
Docker Desktopの有償化に伴い、Rancher Desktopへ移行しました。
ですが、移行後にdocker-compose
コマンドが効かなくなり、使えるようになるまでの試行錯誤を記しておきます。
Rancher Desktopインストール
以下の記事を参考にインストールできます。
インストール前に Docker Desktop を uninstall しておくこと。
(* 2つ目の記事にはk8sクラスタの無効化方法も記載されています。)
docker
, docker-compose
コマンドのインストール
docker
, docker-compose
コマンドをまだインストールしていない人は以下のコマンドでインストールできます。
$ brew install docker
$ brew install docker-compose
Homebrew が入っていない人は、以下を参考にインストールできます。
docker-composeできるまで
Rancher Desktop をインストールしてから、docker-compose
できるまでの軌跡は以下の通りです。
一部実行結果をマスク(*******
に置き換え)しています。
インストール直後
以下のエラーでdocker
コマンドもdocker-compose
コマンドも効かない。。
$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
$ docker-compose up -d
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
rancher desktop app は起動できているが、 docker daemon が起動していないみたいなのでPC再起動してみる。
PC再起動後
docker daemon は起動したが、docker-compose
はエラーになる。。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
******* rancher/mirrored-coredns-coredns "/coredns -conf /etc…" 16 minutes ago Up 16 minutes k8s_coredns_coredns-96cc4f57d-cpdgb_kube-system_9bc1de3c-e778-4209-ba1c-1b5f74f8da86_0
(中略)
******* rancher/mirrored-pause:3.6 "/pause" 17 minutes ago Up 17 minutes k8s_POD_metrics-server-ff9dbcb6c-fc5xg_kube-system_80ad343f-b24a-4372-98c7-54a554ec0069_0
$ docker-compose up -d
1 error occurred:
* error listing credentials - err: exec: "docker-credential-desktop": executable file not found in $PATH, out: ``
エラーを調べてみると、以下がHit。
~/.docker/config.json
の credsDstore
を credDstore
に書き換えればいいらしい。
(20240420追記
)credsDstore
はDockerでの認証情報ストアの参照先で、"desktop"
はdocker-desktopを指しているらしい。credsDstore
の行を削除するので問題なさそうです。(参考:https://dev.classmethod.jp/articles/fix-credsstore-missing-2023-11-06/)
書き換え後のファイル例は以下の通り。(* 人によってファイルの内容は一部異なると思います。)
$ cat ~/.docker/config.json
{
"auths": {
"*******.amazonaws.com": {}
},
"credStore": "desktop",
"experimental": "disabled",
"stackOrchestrator": "swarm"
}
~/.docker/config.json
書き換え後
無事 docker-compose
できました。
$ docker-compose up -d
Sending build context to Docker daemon 675B
(中略)
Successfully built *******
Successfully tagged *******:*******
[+] Running 2/2
⠿ Network ******* Created 0.1s
⠿ Container ******* Started 0.5s
あとがき
なぜ ~/.docker/config.json
の credsDstore
を credDstore
に書き換えるとエラー解消されるのかはよく分かってないです。
(20240420追記
)credsDstore
はDockerでの認証情報ストアの参照先で、"desktop"
はdocker-desktopを指しているらしい。credsDstore
の行を削除するので問題なさそうです。(参考:https://dev.classmethod.jp/articles/fix-credsstore-missing-2023-11-06/)