Skip to content

Instantly share code, notes, and snippets.

@igorjs
Forked from BretFisher/docker-for-mac.md
Created July 31, 2023 01:08
Show Gist options
  • Save igorjs/33190426d0dce6e7cddd7b44119e2006 to your computer and use it in GitHub Desktop.
Save igorjs/33190426d0dce6e7cddd7b44119e2006 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