Again, please tell me if there is a better way to do this.
While testing docker, frequently I need to start/stop/rm containers. I got real sick of having to ls them and copy paste the container ID.
Using this alias, I just have to remember a single part of the name of the container, and I will get the container IDs that can then be included as part of another command:
$ alias dcl='_dcl(){ docker container ls -aq -f name="$1";}; _dcl'
$ dcl snikket
b3fcbc808cc9
1947885fbb24
054d67d2e8b9
d8fe9df5f61f
So now that I’m getting a list of IDs, I can easily, for example, pause all of them:
$ docker container pause $( dcl snikket )
Error response from daemon: container is not running
Error response from daemon: container is not running
Error response from daemon: container is not running
Error response from daemon: container is not running
The containers weren’t actually running, but this shows the alias working.
dcl obviously stands for ‘docker container ls’
Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...] Options: -s, --signal string Signal to send to the container -t, --time int Seconds to wait before killing the container
Unfortunately no filter here