Docker
Cleaning up
Cleanup the docker virtual disk for images that are partial stages from builds:
function dcleanup {
docker rm -v $(docker ps --filter status=exited -q 2>/dev/null) 2>/dev/null
docker rmi $(docker images --filter dangling=true -q 2>/dev/null) 2>/dev/null
}
Nuke
To wipe containers and images out and start fresh. This has to happen from time to time, as Docker uses a virtual disk that has a fixed size, usually between 15Gb and 80Gb. This is shown as a function so it can be copied into your .bashrc if you want to do so.
function dnuke {
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker rmi $(docker images -q)
docker ps -a | sed '1 d' | awk '{print $1}' | xargs -L1 docker rm
docker images -a | sed '1 d' | awk '{print $3}' | xargs -L1 docker rmi -f
docker volume rm $(docker volume ls -qf dangling=true)
echo "Nuked!"
}
Remove files matching a name.
This will remove anything that text matches a term you enter on the function.
function dremovebyname {
docker ps -a | awk '{ print $1,$2 }' | grep $1 | awk '{print $1 }' | xargs -I {} docker rm -f {}
}
Start/Stop
Stopping docker containers running.
# stops all your continers
function dockerstop {
docker rm $(docker stop $(docker ps -a -q --filter ancestor=$1 --format="{{.ID}}"))
}
Docker compose
To issue commands with docker-compose, you need to be in the root folder of that drive (that contains the docker-compose.yml files). Otherwise, your results MAY vary. You cannot issue docker-compose commands from INSIDE a container.
To stop everything without deleting all the data:
docker-compose stop
To stop everything AND delete all the data (the database is the thing that matters here).
docker-compose down
Inspecting a Stopped Container
Inspecting a stopped container's file system is a thing that needs to be done from time to time. To do this:
docker commit CONTAINER_ID NEWIMAGENAME
docker run -ti --entrypoint /bin/bash NEWIMAGENAME
Last updated