LoginSignup
17
15

More than 3 years have passed since last update.

Docker Desktop for Macの裏で動いている仮想マシン(Linux)に直接アクセスする方法

Last updated at Posted at 2017-07-28

Docker Desktop for Macは裏で仮想マシン(Linux)が動いており、そのLinux上のDockerと通信してあたかもMac上で動作しているかのように見せています。

その裏で動いている仮想マシン(Linux)に直接アクセスする方法を示します。

新しい接続方法 (2021.4.8 追記)

Docker Desktop for Mac の新しいバージョンではttyファイルが無くなったため、 以前の方法 では接続ができなくなりました。
新しいバージョンでは debug-shell.sock 経由でアクセスする必要があるとのことです。

参考: https://gist.github.com/BretFisher/5e1a0c7bcca4c735e716abf62afad389

新しい接続方法その1
socat -d -d ~/Library/Containers/com.docker.docker/Data/debug-shell.sock pty,rawer
# 別ターミナルセッションで
screen /dev/ttys0xx

ttys0xx の部分は socat コマンドを実行した時に作成される ttys004 のような数字に置き換えて実行する必要があります。

もしくは、dockerコマンド経由でアクセスすることもできるようです。

新しい接続方法その2
docker run -it --rm --privileged --pid=host alpine:edge nsenter -t 1 -m -u -n -i sh

こちらのほうが手軽でよいかもしれません。

以前の方法

ターミナルを起動して以下のコマンドを実行すると、Docker (Desktop) for Macで稼働している仮想マシンにログインできます。

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

screen を終了する時は C-a k (controlキーを押しながらaを押下し、controlキーを放してkを押下) した後 y を押下します。

参考: https://forums.docker.com/t/connect-directly-to-container/18828/3

17
15
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
17
15