Lab 1.2 Run a Container on Docker ================================= .. seealso:: This is only a very basic introduction to docker. For everything else see `Docker Documentation `_ #. Continuing from where we left off on the jumpbox go back to the **kube-master1** session. #. Now that docker is up and running and confirmed to be working lets deploy the latest `Apache web server `_. .. note:: The ``docker run`` command will first look for a local cache of the container **httpd**, and upon comparing that copy to the latest instance, decide to either download an update or use the local copy. Since there is no local copy, docker will download the container **httpd** to your local cache. This can take a few seconds (or longer), depending on container size and your bandwidth. Docker will chunk this into parts called a pull. ``--rm`` "tells docker to remove the container after stopping" ``--name`` "give the container a memorable name" ``-d`` "tells docker to run detached. Without this the container would run in foreground and stop upon exit" ``-it`` "this allows for interactive process, like shell, used together in order to allocate a tty for the container process" ``-P`` "tells docker to auto assign any required ephemeral port and map it to the container" .. code-block:: bash docker run --rm --name "myapache" -d -it -P httpd:latest #. If everything is working properly you should see your container running. .. note:: ``-f`` "lets us filter on key:pair" .. code-block:: bash docker ps -f name=myapache .. image:: images/docker-ps-myapache.png .. note:: The "PORTS" section shows the container mapping. In this case the nodes local IP and port 32768 are mapped to the container. We can use this info to connect to the container in the next step. #. The httpd container "myapache, is running on kube-master1 (10.1.10.21) and port 32768. To test, connect to the webserver via chrome. .. code-block:: bash http://ip:port .. image:: images/myapache.png .. attention:: That's it, you installed docker, downloaded a container, ran the Hello World container, ran a web server container, and accessed your web server container via the browser.