LoginSignup
1
1

More than 1 year has passed since last update.

Macでlima上のDockerにEmacsでdocker-trampする方法

Posted at

はじめに

この環境って結構レアケースだと思うので、とても情報が少なく、やっと接続できるようになったのでメモしておきます。
まず、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 を設定変更します。

~/.lima/default/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という機能を利用して接続できるようです。
これリモートのコンテナでも使えるので便利ですね。

1
1
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
1
1