LoginSignup
8
9

Mac & Rancher Desktop で docker-compose を使えるようになるまで

Last updated at Posted at 2022-02-05

経緯

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.jsoncredsDstorecredDstore に書き換えればいいらしい。
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.jsoncredsDstorecredDstore に書き換えるとエラー解消されるのかはよく分かってないです。
20240420追記credsDstoreはDockerでの認証情報ストアの参照先で、"desktop"はdocker-desktopを指しているらしい。credsDstoreの行を削除するので問題なさそうです。(参考:https://dev.classmethod.jp/articles/fix-credsstore-missing-2023-11-06/)

参考

8
9
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
8
9