Alias bash per Docker

1 minuto/i di lettura

Utilizzando distribuzioni linux container-focused mi sono trovato con un paio di perplessità iniziali, primo fra tutti, come fare ad utilizzare docker-compose se non è possibile scrivere nelle directory di sistema ed installarlo?

Alla fine ho optato per una soluzione abbastanza pulita e utilizzare docker-compose dentro ad un container (anche se bindare /var/run/docker.sock all’interno del container non è il massimo, ma considerato che il tempo di esecuzione è relativamente limitato non lo considero un grosso rischio per la sicurezza).

Altre due cose che ho bisogno di fare relativamente spesso sono di avere una panoramica decente delle attività di Docker, e di dover accedere all’interno dei container.

Come dashboard ho scelto Dry (stesso ragionamento di prima per quanto riguarda il bind di /var/run/docker.sock) e per fare un accesso veloce all’interno dei container ho scritto un paio di “funzioni”, una per invocare bash, e una per sh quando il precedente non è disponibile; sì sono pigro e avevo bisogno di accorciare il comando.

Da aggiungere al file .bashrc della vostra home

alias docker-compose='docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v "$PWD:/rootfs/$PWD" -w="/rootfs/$PWD" docker/compose:1.24.0'
alias dry='docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock moncho/dry'
function containerbash {
    docker exec -i -t $1 /bin/bash
}
function containersh {
    docker exec -i -t $1 /bin/sh
}

Se non vi serve una versione specifica di docker-compose potete omettere :1.24.0, io personalmente preferisco aggiornarlo manualmente modificandone la versione di volta in volta nel .bashrc

Ricordatevi di ricaricare il file con:

source ~/.bashrc

Sicuramente non ho inventato nulla di nuovo, ma ammetto che il trucco di usare docker-compose all’interno di un container non mi era venuta in mente subito, e la trovo una soluzione molto pratica.

Scrivi un commento