🍖

DockerDesktopを止めてColimaでコンテナを動かす

2024/11/12に公開

CLIでどうにかしたい

PCを起動してからコンテナを動かす時に

docker compose up -d

とか

ddev start

とか叩くと

Is the docker daemon running?
Could not connect to a Docker provider. Please start or install a Docker provider.

あーはいはい、DockerDesktop起動してなかった。
Launchpadを開いて、Dockerをクリックして起動するのを待って...
というのがめんどくさくてもう止めたかった。
なにか...なにか無いか...
service dockerd start的なのは...

Claudeに聞いた

colimaっていうのがあるのねぇ
というかLinuxだったらsystemctlで直接起動出来るんか...

colimaを入れてみよう

マシンの状態

  • DockerDesktop導入済み
  • CraftCMSのlocal環境としてddevを導入済み

参考ページ

https://zenn.dev/0tofu/articles/c90f5fe46c6720
https://zenn.dev/sqer/articles/644bb456c56c0f

brew install colima
colima version
 - colima version 0.8.0
 - git commit: 9c08cff339f087c0600d9d56af7b5fbcfe02e287

colima & ddevを動かす

まずcolimaを起動(VMを作成)
オプションが書かれているパターンが多いけどデフォルトのスペックは

key value
CPU 2Core
メモリ 2GiB
ボリューム 100GiB

とのことなので一旦デフォルトで

マウントタイプはsshfsを使わずvirtiofsを指定

colima start --mount-type virtiofs

colima status
INFO[0000] colima is running using macOS Virtualization.Framework 
INFO[0000] arch: x86_64                                 
INFO[0000] runtime: docker                              
INFO[0000] mountType: virtiofs                          
INFO[0000] socket: unix:///Users/shin_develop/.colima/default/docker.sock 

ddevを開始

ddev start

サイトへアクセス!

出来てない

Craftは動いてるが初期状態(DBセットアップが出来ていない状態)っぽいので
セットアップページ(/?p=admin/install)を開いてみる

ほらな!
DBがうまく参照出来てないのが原因ぽいので更に探る

DBコンテナの状態を探る

ddev mysql -e "SHOW DATABASES;"
+--------------------+
| Database           |
+--------------------+
| db                 |
| information_schema |
| performance_schema |
+--------------------+

DBはあるっぽいのでmysqlで見てみる

ddev ssh
mysql -u root -proot
use db;
show tables;
Empty set (0.00 sec)

シンプルにインポートしてしまえばいいか...

DockerDesktop経由でDBバックアップを取得

ddev stop
colima stop

DockerDesktopを起動...

ddev start
ddev export-db --file=backup.sql

ここで出力されるのはsqlファイルではなくてgzip圧縮されたファイルだったので
backup.sql.gzみたいにするのがベター(この後のインポートが出来なくて微ハマりした)

素のsqlファイルとしてエクスポートするなら以下のフラグを付ければOK

ddev export-db --gzip=false --file=backup.sql

これでようやくDockerDesktopを完全に止めてcolimaに移行出来るはず。

colima経由でDBをインポート

colima start --mount-type virtiofs
ddev start
ddev import-db --file=backup.sql
 - Successfully imported database 'db' for my-cms 

復旧!!

ということでDockerDesktopからcolimaへの移行完了です。

おわり。

Discussion