
Discover the core concepts of virtualization and Docker, including Linux namespaces, containers, and Dockerfile directives, with practical, hands-on training on installing Docker on Windows and macOS.
Learn that Docker runs without a graphical user interface and operates as a command-line tool, and build the basic command-line knowledge required for this course.
Explore virtualization as creating virtual resources that do not exist physically, including virtual computers with operating systems, hard disks, network resources, and virtual peripherals like keyboard, mouse, and monitor.
Explore paravirtualization by examining four layers—hardware, host operating system, virtualization software, and guest environments—and see how virtual machines enable testing across multiple operating systems and browsers.
explains full virtualization, detailing how a hypervisor bridges host operating system and virtual instances, enabling client-server control and elastic cloud hosting through services like AWS.
Explore container virtualization in Linux-based systems, where the host kernel is shared with guests through namespaces and cgroups, enabling lightweight, portable containers with memory and network virtualization, managed by Docker.
Install Docker across Windows, macOS, and Linux by following official instructions, using virtualization tools like VirtualBox, and verifying the installation with the docker command.
Explore Docker architecture: containers as isolated instances, the daemon that manages them, and how the main program coordinates container operations on the host computer.
Discover how to find the docker version using the docker command and its subcommand in the terminal, and verify the installed version on your system.
Create your first Docker container by writing a Dockerfile, selecting a guest operating system, and building the image to share with the host and reduce size by 50–60%.
Run a container created in the previous tutorial, pass commands to the container, and observe how the inner process executes to produce outputs like hello world.
Learn how to list all docker containers, including running ones, by using docker ps -a, and understand container IDs and names.
Learn how to inspect a Docker container to view memory and disk usage, creation time, container ID, and other technical details using the inspect command.
Attach to a running container process, detach it to run in the background, and inspect the container's process ids to manage multiple processes.
Learn to stop a process inside a docker container using SIGTERM and SIGKILL, and send signals with docker kill or docker stop.
Learn how to restart a running Docker container by listing active containers, using the start subcommand with the container ID, and verifying the container restarts.
Explore running a container in interactive mode, attach to its shell to pass commands directly, then detach using ctrl-b and ctrl-q and return to the host operating system.
Learn how changes to a container's filesystem are ephemeral until you commit them, creating a new image or replacing the old container.
Stop and remove the Docker container to free memory in the host operating system. End the application as a single process by fully halting the container.
Connect a docker client to a remote docker server by specifying the remote host IP and daemon port, then issue commands to manage containers.
Explore Docker Hub, the public container registry, learn how to upload and download containers, search popular images like WordPress, and manage private repositories.
Learn to log in to docker hub, format container names with namespace and image name, and push the image so others can pull and use it.
Learn how to pull a container image from Docker Hub by copying and pasting the container name to start the download, and explore basic options for using the downloaded image.
Learn to search containers in the terminal using the correct command and subcommand. View a list of container names like WordPress and download them directly.
Explore building and running containers with Docker using Dockerfile basics and the build command. Learn about private and public repositories for storing and sharing containers.
Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.
Why do developers like it?
With Docker, developers can build any app in any language using any toolchain. “Dockerized” apps are completely portable and can run anywhere - colleagues’ OS X and Windows laptops, QA servers running Ubuntu in the cloud, and production data center VMs running Red Hat.
Developers can get going quickly by starting with one of the 13,000+ apps available on Docker Hub. Docker manages and tracks changes and dependencies, making it easier for sysadmins to understand how the apps that developers build work. And with Docker Hub, developers can automate their build pipeline and share artifacts with collaborators through public or private repositories.
Docker helps developers build and ship higher-quality applications, faster.
Why do sysadmins like it?
Sysadmins use Docker to provide standardized environments for their development, QA, and production teams, reducing “works on my machine” finger-pointing. By “Dockerizing” the app platform and its dependencies, sysadmins abstract away differences in OS distributions and underlying infrastructure.
In addition, standardizing on the Docker Engine as the unit of deployment gives sysadmins flexibility in where workloads run. Whether on-premise bare metal or data center VMs or public clouds, workload deployment is less constrained by infrastructure technology and is instead driven by business priorities and policies. Furthermore, the Docker Engine’s lightweight runtime enables rapid scale-up and scale-down in response to changes in demand.
Docker helps sysadmins deploy and run any app on any infrastructure, quickly and reliably.