\section{Docker}

\begin{frame}
   {Docker}

   \textbf{Docker} is an application-level virtualization using many
   individual images to build up the necessary services
   to support the target application. These images are packaged
   into containers.

   \begin{itemize}
      \item Images are components in containers
      \item Images may contain
      \begin{itemize}
         \item application code
         \item runtime libraries
         \item system tools
         \item \ldots or just about anything required for an application
      \end{itemize}
      \item Images may reside on a \textbf{Docker Hub} or a \textbf{registry} server
   \end{itemize}

   \textbf{Docker} has extensive documentation at \url{https://docs.docker.com}

\end{frame}

\cprotect\note{

   The \textbf{Docker} website \url{https://www.docker.com} has documentation,
   tutorials and training information.

   One of the most compelling features of \textbf{Docker} is an application
   can be packaged up with all of its dependent code and services and
   deployed as a single unit with the minimum of overhead. This deployment
   can be easily repeated as often as desired. This reduces the requirement
   of building up a server with layered services to support the end application.

}


\begin{frame}
   {Docker Steps}

   Starting up a \textbf{Docker} containerized application may include
   only a few steps.
   \begin{itemize}
      \item Install the \textbf{Docker} service package with your favorite tool.
      \item Start the \textbf{Docker} service.
      \item Search for an appropriate image from \textbf{Docker Hub} or
      your private repository.
      \item Pull the image.
      \item Run the image
      \item and finally test the application.
   \end{itemize}

\end{frame}

\cprotect\note{

   The steps detailed above are just a very minimal example
   of testing a \textbf{Docker} application.

   There are of course many, many options that may be used
   including functions that create an image, set system
   variables or configuration parameters, and then store the
   result as a new image. In some cases, a writable image
   is required, rather than a non-writable one.

   Most of the \textbf{Docker} commands have individual
   \textbf{man} pages. Examples include: \texttt{docker(1),
      docker-search(1), docker-pull(1), docker-create(1)}, and
   \texttt{docker-run(1)}.


}


