Docker Documentation. To learn what Docker is, the official Docker Overview is an excellent resource.
# list docker ps -a # list running docker ps --filter status=running # stop all docker stop $(docker ps -a -q) # remove all docker rm $(docker ps -a -q) # remove docker rm [CONTAINER ID] # remove associated data volumes docker rm -v [CONTAINER ID] # logs docker logs [CONTAINER ID] # bash docker exec -it [CONTAINER ID] /bin/bash # shell docker exec -it [CONTAINER ID] sh
You can substitute the container name for the id. e.g.,
docker logs determined_kapitsa
# list docker images -a # remove image docker rmi [IMAGE ID] # remove dangling images docker rmi $(docker images -q -f dangling=true) # remove all images docker rmi $(docker images -a -q) # save image docker save -o myimage.tar myimage:latest # load image into docker docker load -i myimage.tar
Docker save / load handy for deploying an image build to a server. e.g., copy the image
.tarfile to server using scp and then load it into Docker.
# list docker volume ls # remove volume docker volume rm [VOLUME NAME] # remove all volumes docker volume rm $(docker volume ls -q) # list dangling volumes docker volume ls -f dangling=true # remove dangling volumes (1.13+) docker volume prune
# docker disk usage docker system df # system-wide info docker system info # real time server events docker system events # removes # - all stopped containers # - all networks not used by at least one container # - all dangling images # - all build cache docker system prune
# shell access to any container docker-compose exec [SERVICE] sh # using user www-data (82) for Nginx and PHP containers docker-compose exec --user=82 php sh
To build an image, a text file that list instructions required to create the Docker image is needed. This file is called a Dockerfile. Here is an example of a simple Dockerfile for a Nginx web server. The first line,
FROM nginx is the base image that this image will be built upon. Each line containing the RUN, COPY, ADD instruction create a layer that is saved as a delta (to save space). For more info, docs.docker.com/develop/develop-images/dockerfile_best-practices.
# use official nginx image (https://hub.docker.com/_/nginx) # as base layer for the new image FROM nginx # copy files and folders from `website` directory # into `/usr/share/nginx/html/` directory COPY ./website/ /usr/share/nginx/html/ # copy `nginx.conf` file into `/etc/nginx/` directory COPY ./nginx.conf /etc/nginx/nginx.conf
Resources for Docker Management
Immersive terminal interface for managing docker containers and services
Inspect container images and their metadata
Portainer is an open-source lightweight management UI which allows you to easily manage your Docker hosts or Swarm clusters.
docker run commands into
docker-compose blocks with composerize.com
Adobe Experience Manager Docker configuration for author, publisher and dispatcher.
Drupal Dev Environment
Drupal Composer project mounted as a volume in a Docker container. Features include Drush, Drupal Console, mailhog and phpMyAdmin. A Docker-sync configuration is available for OS X.
Docker Drupal Dev Environment - Drupal Composer
AIO (All In One) Docker Image for Drupal development
Laravel Dev Environment
Building a local Laravel development environment with Docker. Included are examples for debugging Laravel’s PHP with Xdebug using the Visual Studio Code editor. Source Code available on GitHub. Read More
Wordpress Dev Environment
This version documents how to use Docker for a local WordPress development environment with Traefik and how to deploy it to an Ubuntu Linux server running docker.
WordPress from Development to Production using Docker
This version documents a local development environment for Wordpress using nginx-proxy, Docker and Docker Compose. Aside from making the container configuration easier to understand, Docker Compose coordinates the creation, start and stop of the containers used together in this environment.
Docker WordPress Dev Environment - Xdebug with VS Code