\section{Docker Commands}
\begin{frame}
   {docker Command}
   \begin{itemize}
      \item
      The \textbf{docker} command has more than 40 sub-commands
      \begin{itemize}
         \item Some with 50 or more options
      \end{itemize}
      \item
      \verb!docker <command> --help! for details
      \begin{multicols}{3}
         \texttt{\textbullet\ run\newline
            \textbullet\ create\newline
            \textbullet\ exec\newline
            \textbullet\ ps\newline
            \textbullet\ images\newline
            \textbullet\ network\newline
            \textbullet\ rm\newline
            \textbullet\ rmi\newline
            \textbullet\ save\newline
            \textbullet\ search\newline
            \textbullet\ start\newline
            \textbullet\ stop\newline
            \textbullet\ top\newline
            \textbullet\ update\newline
            \textbullet\ volume
         }
      \end{multicols}
      etc.
   \end{itemize}

\end{frame}

\cprotect\note{

   There are many \textbf{docker} sub-commands and they tend
   to be somewhat self-documenting. Often confused are
   \verb!run!, \verb!create! and \verb!exec!.  The \verb!ps!
   command will list running containers, or all containers if
   you include the \textbf{--all} option.

   \verb!run! will start a new container and execute a command
   within. Common options are \texttt{-t} to attach to a tty and
   \texttt{-d} to run the container in the background.

   The \verb!create! command creates a container. It has many options
   for configuring container settings and attachments.

   If the container is already running, and you want to execute
   something inside of it you can use the \verb!exec! command. It
   also accepts the \texttt{-t -d} options.

   The \verb!images! command will show images in various outputs. The
   \verb!rmi! command will remove images and delete un-tagged parents
   by default.

   You can also leverage shell functions to operate upon all
   containers. For example to remove all stopped containers:
   \verb!docker rm $(docker ps -a -q)!.

}
