Some of the tools, terms, and technologies that developers encounter when using Docker include:
DockerFile Each Docker
container
starts with a simple text file that contains instructions on how to create the Docker container image. DockerFile automates the process of creating Docker images. It is essentially a list of command-line interface (CLI) instructions that Docker Engine will execute to assemble the image. The list of Docker commands is huge, but standardized: Docker operations work the same regardless of content, infrastructure, or other environment variables.
Docker images
Docker images contain executable application source code, as well as all the tools, libraries, and dependencies that application code needs to run as a container. When you run the Docker image, it becomes an instance (or multiple instances) of the container.
It is possible to create a Docker image from scratch, but most developers pull them from common repositories. Multiple Docker images can be created from a single base image, and they will share the commonalities of their stack.
Docker images are made up of layers, and each layer corresponds to a version of the image. Each time a developer makes changes to the image, a new top layer is created and this top layer replaces the previous top layer as the current version of the image. Previous layers are saved for reverting or for reuse in other projects.
Each time a container is created from a Docker image, another new layer is created called a container layer. Changes made to the container, such as adding or deleting files, are saved only in the container layer and exist only while the container is running. This iterative imaging process allows for greater overall efficiency, as multiple live container instances can run from a single base image and, when they do, leverage a common stack.
Docker containers Docker
containers are the active and running instances of Docker images. While Docker images are read-only files, containers are executable, ephemeral, and life-churning content. Users can interact with them, and administrators can adjust their settings and conditions using Docker commands.
Docker
Hub
Docker Hub (link that resides outside ibm.com) is the public repository of Docker images that calls itself “the world’s largest container image library and community.” It contains more than 100,000 container images obtained from commercial software vendors, open source projects, and individual developers. It includes images produced by Docker, Inc., certified images belonging to the Docker Trust Registry, and many thousands of other images.
All Docker Hub users can share their images at will. They can also download predefined base images from the Docker file system to use as a starting point for any containerization project.
There are also other image repositories, especially GitHub. GitHub is a repository hosting service, well known for its application development tools and as a platform that encourages collaboration and communication. Docker Hub users can create a repository (repo) that can contain many images. The repository can be public or private, and can be linked to GitHub or BitBucket accounts.
Docker
Desktop
Docker Desktop (link that resides outside ibm.com) is a Mac or Windows application that includes Docker Engine, Docker CLI client, Docker Compose, Kubernetes, and others. It also includes access to Docker Hub.
Docker Daemon The Docker
daemon
is a service that creates and manages Docker images, using client commands. Essentially, the Docker daemon serves as the control center of your Docker deployment. The server on which the Docker daemon runs is called the Docker host.
Docker
Registry
A Docker
registry is a scalable, open-source storage and distribution system for Docker images. Logging allows you to track image versions in repositories, using tagging for identification. This is achieved using git, a version control tool.