Shell into swarm container
Use docker ps
to find the names you can use. Look under both CONTAINER ID
and NAMES
, either will work.
>$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e53bff8bebfc login-arm64:1.0 "/bin/sh -c 'node ser" 27 seconds ago Up 25 seconds login.1.cg7fltcu3wfe7ixtnqzg8myy1
>$ docker exec -it e53bff8bebfc bash
root@e53bff8bebfc:/#
The long name is of the form $SERVICE_NAME.$REPLICA_NUMBER.$ID_FROM_SERVICE_PS
>$ docker exec -it login.1.cg7fltcu3wfe7ixtnqzg8myy1 bash
root@e53bff8bebfc:/#
Quite an older question, but just my two cents here: I very often run: docker exec -it $(docker ps -q -f name="login*") sh
-q
only returns the container id-f name="login*"
applies a filter based on container name, using a regex
This comes in handy because starting a new container will change the container name with some random characters in it. It's important that your filter returns just 1 container, so specify the name in a way that there will be just 1 result. For example: if you have a container "monster" and a container "monitor", you need -f name="moni*"
to exclude the "monster" container.
The command will result in something like:docker exec -it login.1.cg7fltcu3wfe7ixtnqzg8myy1 sh