An isolated group of one or more processes that are organized under a single name and unique identifier and are running in a computing environment is known as a container. A physical computer or a virtual machine can serve as the computing environment. An image's runtime realization is specified by a template called a container image. Even virtual machines can run Docker containers. Compared to building a virtual machine, Docker offers an additional layer of abstraction and automation, making it simpler to use. Because the containerization platform includes the entire filesystem of the application along with all of its dependencies, its popularity has grown among developers and system administrators. This configuration enables immutable infrastructure and ensures that deployments are idempotent, meaning they will remain the same regardless of how often you perform the action. A Docker daemon runs in the background to manage images, containers, and other things. When a client and a daemon need to communicate, they do so via sockets or a RESTful API.
Images are templates that can only be read and contain information for building containers. The Docker platform generates containers using Docker images. Similar to layers in a photo editor, an image is made up of several stacked layers that each change a different aspect of the surrounding space. The code or binary, runtimes, dependencies, and other filesystem objects needed to run an application are all contained in images. The host OS kernel is a requirement for the image. An image is transformed into one or more container instances when it is run by a Docker user. The container's initial state is completely up to the developer; it could consist solely of a bash shell running as root, or it could have a web server installed and configured. Nevertheless, in reality, the majority of images come with some pre-configured software and configuration files.
Step 1
We have to create a base container. Click here to see how to set a container of Odoo
Step 2
Log in to the docker account.
docker login
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /home/cybrosys/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Step 3
Commit the container
docker commit odoo14_odoo_1 testmailqwer/testrepo:15.0
docker commit [container name] [repo:tag]
sha256:bfe74a00bd3cb19d176cf37d41b15514c1a3bce9528222c0e02ca0849c252be4
Step 4
Enter the command docker images to view the image.
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
testmailqwer/testrepo 15.0 bfe74a00bd3c About a minute ago 1.53GB
Then we can push the image to the docker by the following command.
docker push testmailqwer/testrepo:15.0
The push refers to repository [docker.io/testmailqwer/testrepo]
14582e37c8ce: Pushed
7465986e874c: Pushed
1e7450998f3e: Pushed
a4aeb5545244: Pushed
573f9d4f87bf: Pushed
400cea90fd74: Pushed
566138c6a589: Pushed
1fa91284fe81: Pushed
f1ae2df420f3: Pushed
fe7b1e9bf792: Pushed
15: digest: sha256:676e07c3b1bb64c98b3277ac9115a289f6b540c9758fec1819342c5f9e0f88b9 size: 2410
Thus we can view our image in the docker account.
Now we can use this image to run the Application. We can add custom addons to the container and create an image of that, we can use this image in different platforms like Kubernetes to run the Application.