Entrar en un container Docker sense SSH

Per accedir a un container Docker no ens cal tenir el servei de SSH en marxa. Només ens cal utilitzar la comanda nsenter.

# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                         NAMES
6d2d285dd142        nginx:latest        "nginx -g 'daemon of   20 hours ago        Up 20 hours         443/tcp, 0.0.0.0:80->80/tcp   nginx
#
# IDCONTAINER=6d2d285dd142; PID=$(docker inspect --format {{.State.Pid}} $IDCONTAINER); nsenter --target $PID --mount --uts --ipc --net --pid /bin/sh

Això ens permetrar tenir una shell a l’espai de kernel que fa servir el procés del container.

Per sortir només caldria una exit ja que és una shell.

És una alternativa a:

docker attach 6d2d285dd142

Per sortir del attach cal:

CTRL-P i Q

Més info a: Docker Blog

Per saber a quin container pertany un PID

docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.ID}}' | grep "^${PID},"