はじめに
この環境って結構レアケースだと思うので、とても情報が少なく、やっと接続できるようになったのでメモしておきます。
まず、Docker Desktopが有償になってしまい、その代替えとしてMacではlima VMを使って、その上でDocker Engine Serverを動かして使用するという方法を見つけたので試してみました。
https://qiita.com/yoichiwo7/items/44aff38674134ad87da3
たぶん大抵の人はこれで解決するのでしょう。
ただ、私の場合はEmacsを使っており、dockerコンテナ上のファイルにアクセスするのにdocker-trampを使っています。
急にdocker-trampが使えなくなった時の使い勝手の悪さときたら。。。
ということで試行錯誤して、やっと使えるようになりました。
こんな方法があったとは知らなかったです。
ssh接続できるようにする
まず先ほどのページの設定 Docker Desktop for Macの実用的な代替手段: lima + Dockerを実施した後に、次のように lima.yaml を設定変更します。
ssh:
localPort: 0
loadDotSSHPubKeys: true
localPortを0にしておくと自動でポートを設定してくれて、デフォルトだと60022でssh接続できるようになります。
いったんstop→startします。
limactl stop
limactl start
この後、一度sshで接続しておきます。
ssh -p 60022 127.0.0.1
docker-trampで接続する
dockerコンテナが起動していないと思いますので起動しておきます。
docker start test-container
この状態で、Emacsからdocker-trampで接続します。
C-x C-f /ssh:127.0.0.1#60022|docker:test-container:/root
/rootディレクトリに接続する例です。
Multi-hopという機能を利用して接続できるようです。
これリモートのコンテナでも使えるので便利ですね。