Wilson Mar bio photo

Wilson Mar

Hello. Hire me!

Email me Calendar Skype call 310 320-7878

LinkedIn Twitter Gitter Instagram Youtube

Github Stackoverflow Pinterest

An index to tutorials, support sites, rock stars, and Docker Captains

Español (Spanish)   Français (French)   Deutsch (German)   Italiano   Português   Cyrillic Russian   中文 (简体) Chinese (Simplified)   日本語 Japanese   한국어 Korean

Overview

This is the first of several articles about Docker:


Docker glossary:

  • image: a read-only template with instructions for creating a Docker container

  • container: a runnable instance of an image. You can create, start, stop, move, or delete a container using the Docker API or CLI

  • volume: persists data generated by and used by Docker containers

  • dangling: unused image or volume

  • network: connects Docker containers and services

  • node: an individual Docker Engine instance in a Swarm

Three Linux Kernel technologies enable Docker:

  • Namespaces isolate resources from each other: processes, network interfaces, IPC (InterProcess Communication), disk mount points, UTS (Unix Timesharing System), etc. Namespaces were first introduced in 1973 when syscall chroot() was added to UNIX*. “change root” made it such that a program running in the chroot environment has its own root catalog of folders (bin, sys, lib, etc.).

  • Control groups control resources consumed by each process group by prioritizing, measuring usage, and freezing groups of processes.

  • Union File System begins with a base image of (overlays) branches (layers) of file changes merged. Branches can be read-only or read-write.

Docker support websites

There is no subsitute for reading through Docker’s documentation at https://docs.docker.com

Docker Certified Associate (DCA) exam

PROTIP: Take sample exams for a humbling experience, so you get an accurate sense of how prepared you really are.

PROTIP: Take sample exams several times until you answer all questions for a 100% score. Most questions you get wrong is due to misreading rather than lack of knowledge.

The real (remote) exam is to answer 60% of 55 English multiple-choice questions in 90 minutes. It costs $195 to Examity for a two year badge. Phone Support: 855-392-6489.

The official Study Guide at https://success.docker.com/certification provides two dimensions of content: domains and skills:

Domains listed here have links to https://github.com/DevOps-Academy-Org/dca-prep-guide from DevOpsAcademy.org lists for each domain resources from various sources.

  1. 25% Orchestration (swarm mode, cluster, replicas, mount volumes)
  2. 20% Image Creation, Management, and Registry
  3. 15% Installation and Configuration
  4. 15% Networking
  5. 15% Security (EE signing, RBA, Mutual TLS, UCP, DTR)
  6. 10% Storage and Volumes

PROTIP: Topics within each domain are not arranged in order of learning (such as Installation first, etc.) and thus not numbered.

Skills listed in the certification study guide:

  • Run​​ containerized​​ applications​​ from​​ pre-existing​​ images​​ stored​​ in​​ a​​ centralized​​ registry
  • ​​​​​​​​​​​​Deploy​​ images ​​across​ ​the ​​cluster
  • ​​​​​​​​​​​Install,​​ maintain,​​ and​​ operate​ ​the ​​Docker ​​platform
  • Triage​ ​issue​​ reports​​ from​​ stakeholders​ ​and​ ​resolve
  • Standup​ ​new​ ​Docker​ ​environments​ and ​​perform​​ general​ ​maintenance​ ​and​ ​configuration
  • Migrate​ ​traditional​ ​applications​ ​to​ ​containers
  • ​​​​​​Configure​​ and​ ​troubleshoot​​ Docker​​ engine

Links to Docker documentation for each Domain topic (in 2018) is in one file Docker Certified Associate Exam Preparation Guide from Evgeny Shmarnev, the Containers Guy in Prague.

Sample tests

Some questions are also in the Study Guide on Docker’s certification PDF from September 2017.

PROTIP: Write down your answer, then check how you did at the bottom of the page.

A free 15-question sample test is also available from Whizlabs which provides training by south Indians. They also off two paid full-length 55-question sample tests.

Swarm Mode

Many use Docker with Kubernetes rather than Docker’s own Swarm. But it’s Docker’s exam, so there are questions about Swarm Mode.

Docker Enterprise nodes can be run by both Kubernetes and Docker Swarm in parallel.

Docker EE signs and scans Kubernetes apps as part of policies auto promoting apps.

Enterprise features

https://docs.docker.com/ee/

PROTIP: Most tutorials don’t cover Enterprise features Docker’s licensed Enterprise Edition (EE) documented at https://docs.docker.com/ee. Nevertheless, the DCA exam includes questions about additional enterprise features for businesses wanting a secure and supported container platform for their datacenter:

  • Vulnerability scans
  • Notary

  • Version Packs in Desktop Enterprise to keep the client in sync (v 3.0 vs. 2.1)
  • >docker app packaging command to install clients in swarm or kubernetes according to the vendor-neutral “Cloud Native Application Bundle” (CNAB) spec at https://github.com/deislabs/cnab-spec

  • docker cluster command to create, ls, backup, restore clusters as code on AWS, Azure, and VSphere
  • Docker Kubernetes Service support of all Docker Enterprise features such as
    docker stack deploy
  • docker context enable a single Docker CLI to switch among multiple contexts of Swarm clusters, Kubernetes clusters, and individual Docker nodes.
  • docker template
  • docker buildx CLI plugin extends the docker command with features in the Moby BuildKit builder toolkit, such as creating scoped builder instances and building against multiple nodes concurrently.
  • docker assemble (experimental) to build without Dockerfileby detecting Spring Boot and ASP.NET Core.

Docker Enterprise hosted trials at trial.docker.com last only 12 hours. https://trial.docker.com/demo has these menu itmes:

  • Admin Console is a command-line terminal to the cluster. In it, directly run commands to deploy and manage applications. Run docker info to check the status of the cluster.

  • Universal Control Plane (UCP) is a web interface to deploy and monitor applications across machines (as a cluster). See https://docs.docker.com/ucp

    docker-ucp-samp-1010x621.jpg

  • Docker Trusted Registry (DTR) is a more secure DockerHub to host vetted Docker images, adding reports about scans for vulnerabilities. See https://www.docker.com/products/docker-trusted-registry.

    Examples to pull down an image from it:

    docker pull my-registry.net:5000/activemq
    docker pull 06c482d5-2c1a-48c2-a28c-6f3e53f3dde5.dtr.dockertrial.com/example/tomcat
     

    DTR holds digital signatures of apps by specific team members with Docker Content Trust policy enforcement. See https://docs.docker.com/registry.

https://trial.docker.com/launching?token=75a36e25-77f0-46fb-8e6b-74c874fd7c86

Resources

This article was assembled based on several sources.

https://docs.docker.com/get-started is the starting point.

https://www.bretfisher.com/docker-certified-associate/ Brett Fisher who wrote Docker Mastery

https://brianchristner.io/journey-to-docker-certified-associate/

https://medium.com/@manju712/docker-certified-associate-certification-dca-prepwork-tips-6a29db60155c

Labs

Google’s Intro to Docker Qwiklab include 40 minutes of FREE cloud instance time after you click “Start Lab”. And you get a certificate for your resume.

Articles

http://jdlm.info/articles/2016/03/06/lessons-building-node-app-docker.html March 6, 2016 by Dr John Lees-Miller (@jdleesmiller)

http://jdlm.info/ds-docker-demo

https://github.com/jdleesmiller/ds-docker-demo

  • Docker is not designed for SSH to “get inside” a running image. You don’t need SSH to restart the process, tweak configurations, debug with gdb, strace, etc.

Pluralsight video courses

https://www.pluralsight.com/courses/docker-deep-dive-update Jan 4, 2018 [4h 40m]

Pluralsight’s Container Management using Docker skill path of video tutorials by Nigel Poulton (@NigelPoulton) excitedly catching his breath.

  1. Docker and Containers: The Big Picture Dec 22, 2015 / 1h 47m

  2. Docker Deep Dive Jan 28, 2015 / 5h 38m 2s

  3. Docker Swarm: Native Docker Clustering Mar 30, 2016 / 2h 22m 28s

  4. Integrating Docker with DevOps Automated Workflows Sept 21, 2015 / 1h 1m 50s

Dan Wahlin

Other videos

https://www.udemy.com/docker-certified-associate/ by Zeal Vora 6/2019 11.5 hours

http://amzn.in/d/8sr9WH3 book Docker Deep Dive book

Lynda (LinkedIn Learning) offers a 7-hour video course by David Davies (an American).

YouTube videos

  1. Videos from Hashicorp DockerCon 2019

  2. Continuous Delivery with Jenkins Workflow and Docker Explained by Cloudbees at DevOpsTV channel

  3. Continuous Integration Using Docker by DevOpsTV

  4. Moving from Jenkins to Docker for build pipelines from Matt Bostock

  5. Continuous Delivery Pipeline with Docker and Jenkins Javaforum Göteborg

  6. Introduction to Docker by Twitter University 47:14

  7. Jenkins 2 and Beyond DevOpsTV

  8. Jenkins 2.0. What? When? What is in it for me? on Praqma Channel

  9. how-to-provision-and-manage-remote-docker-hosts-with-docker-machine-on-centos-7

  10. Docker First Impressions on Ubuntu

Stefan Scherer (stefanscherer.github.io in Erlangen, Germany):

Lightweight Docker Images in 5 Steps · 13 Dec 2016 · Semaphore Engineering Blog by Igor Šarčević

Bret Fisher (https://www.bretfisher.com/docker/”>bretfisher.com</a>) started a “Docker and DevOps” specific YouTube channel Nov 29, 2018 and since added weekly videos of his live chats.

https://github.com/sergiotocalini/zapgix

Moby Project

https://mobyproject.org includes all of Docker’s open-source efforts under one umbrella repo project.

https://blog.mobyproject.org/


More on DevOps

This is one of a series on DevOps:

  1. DevOps_2.0
  2. ci-cd (Continuous Integration and Continuous Delivery)
  3. User Stories for DevOps

  4. Git and GitHub vs File Archival
  5. Git Commands and Statuses
  6. Git Commit, Tag, Push
  7. Git Utilities
  8. Data Security GitHub
  9. GitHub API
  10. TFS vs. GitHub

  11. Choices for DevOps Technologies
  12. Java DevOps Workflow
  13. AWS DevOps (CodeCommit, CodePipeline, CodeDeploy)
  14. AWS server deployment options

  15. Cloud services comparisons (across vendors)
  16. Cloud regions (across vendors)
  17. AWS Virtual Private Cloud

  18. Azure Cloud Onramp
  19. Azure Cloud
  20. Azure Cloud Powershell
  21. Bash Windows using Microsoft’s WSL (Windows Subystem for Linux)

  22. Digital Ocean
  23. Cloud Foundry

  24. Packer automation to build Vagrant images
  25. Terraform multi-cloud provisioning automation
  26. Hashicorp Vault and Consul to generate and hold secrets

  27. Powershell Ecosystem
  28. Powershell on MacOS
  29. Powershell Desired System Configuration

  30. Jenkins Server Setup
  31. Jenkins Plug-ins
  32. Jenkins Freestyle jobs
  33. Jenkins2 Pipeline jobs using Groovy code in Jenkinsfile

  34. Docker (Glossary, Ecosystem, Certification)
  35. Docker Setup
  36. Dockerize apps

  37. Maven on MacOSX

  38. Ansible

  39. MySQL Setup

  40. SonarQube static code scan

  41. API Management Microsoft
  42. API Management Amazon

  43. Scenarios for load