Hi Community,
In this article, we will learn the below topics listed below:
- What is Docker?
- Some of the Docker benefits
- How does Docker work?
- Docker Image
- Docker Container
- Docker Image repository
- InterSystems's Docker image repository
- Docker Installation
-
Docker Basic Commands
- Running IRIS community edition by using docker
- Docker Desktop GUI
So Let's start.
- What is Docker?
Docker is Virtualization software that makes developing and deploying applications very easy. Docker does this by Packaging the application into a so-called container that retains everything the application needs to run, including the application's actual code, its libraries and dependencies, runtime, and environment configuration.
Docker is a containerization platform that allows developers to create, deploy, and run applications in containerized environment. Docker provides a way to package an application and its dependencies into a single container that can be run on any machine that supports Docker. That makes it easy to create portable, lightweight applications that can be deployed quickly and effortlessly.
- Some of the Docker benefits
Below you can find some of the benefits of using the Docker:
- Security Docker provides a secure and isolated environment for running applications, reducing the risk of conflicts with other applications or the host system.
3. How does Docker work?
Docker creates a virtualized environment for an application called a container. A container is a lightweight, standalone and executable package that incorporates everything needed to run the application, including code, libraries, and dependencies. Containers are isolated from the host system. Therefore, they can run on any machine that supports Docker, regardless of the underlying operating system or hardware.
Containers are created from images which are read-only templates that define the application and its dependencies. Those images are stored in a central repository, called a registry, such as Docker Hub or a private registry. Developers can create custom images themselves or use pre-built ones from the registry.
When a container is launched, it gets built from an image and given its own isolated file system, network, and process space. The container can then run the application as if it were running on a dedicated server.
4. Docker Images
A Docker image is a lightweight, standalone, and executable package that retains everything required to execute an application, including the code, libraries, and dependencies. Docker images are employed to build and run containers, which are isolated environments that can be used to run applications.
Docker images are built from a Dockerfile, which is a text file that contains a set of instructions for building the image. The Dockerfile specifies the base image, the application code and dependencies, the environment variables, and other configuration options necessary for creating the image.
Docker images are stored in a registry, such as Docker Hub or a private one. Every time when a container is created from an image, it runs as a separate process on the host machine, isolated from other processes and containers.
Docker images can be used to deploy applications in a consistent way across different platforms. They make it easy to package, distribute, and deploy applications, and ensure that they run the same way everywhere.
5. Docker Containers
A running instance of an image is a Container, which, as mentioned above, is a lightweight, standalone, and executable package that includes everything needed to run an application, including the code, libraries, and dependencies.
A Docker container provides an isolated environment for running an application, ensuring that it has all the resources it needs to run correctly. Each container runs as a separate process on the host machine and has its own file system, network, and other resources.
Docker containers are designed to be portable and easy to deploy. They can be run on any machine that has Docker installed, regardless of the underlying operating system or hardware. Containers provide a consistent environment for running applications, making it more comfortable to move applications between different environments, such as development, testing, and production.
Docker containers can be managed with the help of the Docker CLI or such Docker tools as Docker Compose or Kubernetes. They can be started, stopped, paused, and restarted as needed. They can also be monitored and managed using a range of tools and platforms.
Overall, Docker containers provide a flexible and scalable way to package and deploy applications, making it less complicated to manage and scale complex applications across different environments and platforms.
6. Docker Images Repository
Docker hosts one of the biggest Docker Repositories, called Docker Hub. It is a storage and distribution system for Docker images. It provides a central repository for developers and organizations to share and distribute their Docker images, making it more enjoyable to build, share, and deploy applications with Docker.
Docker Hub allows users and organizations to store and manage their Docker images and also provides such features as versioning, tagging, and collaboration. Users can search for and download images from Docker Hub, as well as publish their own images to the registry.
In addition to the public registry, Docker Hub provides a private registry for organizations that want to manage their own Docker images and ensure that they are only accessible to authorized users.
7. InterSystems Docker image repository
By using the Docker Hub search feature, we can find InterSystems images on Docker hub.
8. Installation of Docker
In order to use Docker, we need to install it on our system. Docker provides installation packages for various operating systems, including Windows, macOS, and Linux.
Navigate to Docker website. We can download the installation package from the Docker website, run the installer, and follow the prompts to complete the installation.
After installing Docker Desktop, we can use the Docker CLI (Command Line Interface) to manage Docker images, containers, networks, and other resources.
9. Docker Basic Commands
Here we will review some of the docker CLI basic commands. (Make sure to run Docker Desktop before using the commands detailed below)
9.1 List images (locally)
We can use the docker image ls
command to list all the Docker images that are available on our system. Here's how you can use this command:
docker image ls
As you can see, currently, we do not have any images locally
9.2 Pull images from the Docker repository
We can use the docker pull
command to download a Docker image from a registry
docker pull
Let us pull intersystemsdc/iris-community image from the docker hub
At this point, we should use the list command to view images locally
Well done! The iris-community image was pulled successfully
9.3 Remove image locally
We can use the docker image rm
command to delete the image from our system
docker image rm
9.4 List all existing containers (running and not running)
We can employ the docker ps
command to list down running containers
docker ps
As shown in the picture, no container is running at this time.
9.5 Create and start the container
We can use the docker run
command to create and start the container
docker run
Let's create and start the container from iris-community image
Here -d
or --detach
means the following: Run the command in the background and return control to the terminal.
It is time to list down running containers once more
docker ps
We can see that our iris-community image container is running now.
9.6 Stop the specific container
We can use the docker stop
command to stop the running container
docker stop
9.7 Start the specific container
We can use the docker start
command to start a previously stopped container in Docker.
docker start
9.8 Restart the specific container
We can use the docker restart
command to stop and start the running container in the Docker
docker restart
9.9 Remove the specific container
We can use the docker rm
command to remove the stopped container
docker rm
9.10 Running a command inside a running container
We can employ the docker exec
command to run a command inside a running container. It can come in handy when performing administrative tasks or for debugging purposes.
docker exec -it my-container sh
Some common options for the docker exec
command are:
-
-i
or--interactive
: this command keeps STDIN open even if not attached, allowing you to interact with the container. -
-t
or--tty
: this command allocates a pseudo-TTY to the command, allowing you to use terminal commands inside the container. -
-d
or--detach
: this runs the command in the background and returns control to the terminal.
10. Running IRIS community edition by using docker
Utilize the command listed below to run the container by employing the iris-community image
docker run -d -p 52773:52773 intersystemsdc/iris-community
Some common options for the docker exec
command are the following:
-
-d
: this command is used to start a new Docker container in detached mode, it means that the container will run in the background, and we can continue to use the terminal for other tasks. -
-p
: this command helps us publish a container's port to the host machine to make it possible to access the container from outside the Docker network.
In the illustration below you can spot IRIS running in the Docker.
11. Docker Desktop GUI
Docker desktop also has GUI where we can utilize all the above-mentioned commands graphically.
Summary
Docker is a powerful tool that allows developers and IT teams to create, deploy, and run applications in a containerized environment. By providing portability, consistency, scalability, resource efficiency, and security, Docker makes it easy to deploy applications across different environments and infrastructures. With the growing popularity of containerization, Docker is becoming an essential tool for modern software development and deployment.
In the upcoming article, we will learn how to use Docker file (employed to build a Docker image), Docker compose (a YAML file that specifies the configuration options for each container in the application), and Docker volume (a persistent data storage mechanism operated to share data between Docker containers and the host machine.)
Thank you for reading!
Top comments (0)