I thought this would be hard, but turns out the following oneliner does it, with maybe no sideeffects ?

echo 'docker() { [ "$1" = "sh" ] && docker exec -it "$2" sh || command docker "$@"; }' >> ~/.bashrc && source ~/.bashrc

This creates a bash alias for “docker ps” , every other command should run as normal

Now I just need to remember to run this one liner on every single computer I use in the future…

    • bjornsno@lemm.ee
      link
      fedilink
      arrow-up
      29
      arrow-down
      1
      ·
      1 year ago

      That's the neat thing, you don't

      Jokes aside, you create a custom Dockerfile and copy a statically compiled shell binary.

      • vinnymac@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Always wondered why this wasn’t automated, from an ergonomics perspective, a command that lets me open a shell could detect that no shell exists, and then do as you said, without me having to lift a finger. It’s not very unix-y, but it could be a sort of plug-in for Docker CLIs.