Skip to content

Instantly share code, notes, and snippets.

@CaptainVincent
Forked from BretFisher/docker-for-mac.md
Created November 13, 2023 21:09
Show Gist options
  • Save CaptainVincent/ae1ebbb40ba51a5952bafc8dde13a773 to your computer and use it in GitHub Desktop.
Save CaptainVincent/ae1ebbb40ba51a5952bafc8dde13a773 to your computer and use it in GitHub Desktop.
Getting a Shell in the Docker Desktop Mac VM

connect to tty on Docker for Mac VM

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

disconnect that session but leave it open in background

Ctrl-a d

list that session that's still running in background

screen -ls

reconnect to that session (don't open a new one, that won't work and 2nd tty will give you garbled screen)

screen -r

kill this session (window) and exit

Ctrl-a k

other option to connect w/o screen

docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh

Phil Estes says this does:

it’s running a container (using the debian image..nothing special about it other than it apparently has nsenter installed)

, with pid=host (so you are in the process space of the mini VM running Docker4Mac), and then nsenter says “whatever is pid 1,

use that as context, and enter all the namespaces of that, and run a shell there"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment