Docker is a great way to run web apps on your server. However there are times when problems can arise and figuring out where the trouble is can be tricky. Here are a few commands that can help you figure out the cause of the trouble.
docker-compose up
without the -d gives you an interactive look as your container loads. Depending on the container, the information provided can be very useful in tracking down the problem.
docker-compose up -d --build
starts docker and builds image docker-compose up -d
starts docker image.
docker container ls
lists all the active containers and shows each container id. docker container ls -a
shows containers that are not running also.
docker exec -it docker_container_id sh
allows you to sh into a container so you can run commands inside of the container. Also you don't just need to sh, you can run commands on your database, etc. docker exec -i docker_container_id /usr/bin/psql -h db -U postgres -d my_db
docker container ls --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}" -a
Find all of the ports in use on your docker containers with their internal and external network ports. Very useful for troubleshooting your network connections.
docker network ls
shows your network names and ids.
docker network rm network_name
removes a network.
docker network create network_name
creates a network.
docker container rm docker_container_id
removes a container.
docker-compose down --volumes
sometimes you want to reinstall a container and get rid of any data stored locally in volumes. This command also eliminates the stored volume data. Very useful when you need to redo a container from scratch.
docker container prune
remove all stopped containers.
docker volume prune
remove all stopped volumes.
docker network prune
remove all stopped networks.
docker inspect container_name
get lots of interesting info about a container.
docker stop container_id
stops current container also docker kill container_id
.
docker-compose up --build --force-recreate --no-deps
force a container to rebuild from scratch. Sometimes the containers do not properly rebuild when they are changed.