DEV Community

InterSystems Developer for InterSystems

Posted on • Originally published at community.intersystems.com

Introduction to Docker

Hi Community,

In this article, we will learn the below topics listed below:

  1. What is Docker?
  2. Some of the Docker benefits
  3. How does Docker work?
  4. Docker Image
  5. Docker Container
  6. Docker Image repository
  7. InterSystems's Docker image repository
  8. Docker Installation
  9. Docker Basic Commands
    1. Running IRIS community edition by using docker
    2. Docker Desktop GUI

So Let's start.

  1. What is Docker?

A beginner’s guide to Docker — how to create your first Docker application

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.

  1. Some of the Docker benefits

Below you can find some of the benefits of using the Docker:

  • Portability Docker containers can be run on any machine that supports Docker, making it easy to deploy applications across different environments.

  • Consistency By packaging an application and its dependencies into a container, Docker ensures that the application will run consistently, regardless of the underlying infrastructure.

  • Scalability Docker makes it painless to scale applications horizontally by running multiple instances of the same container.

  • Resource efficiency Docker containers are lightweight and require minimal resources, making them ideal for running on cloud infrastructure.
    • 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.

    Image description

     

     

    7. InterSystems Docker image repository

    By using the Docker Hub search feature, we can find InterSystems images on Docker hub.

    Image description

     

    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.

    Image description

    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

    Image description
    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

    Image description
    At this point, we should use the list command to view images locally

    Image description
    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 

    Image description

    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

    Image description
    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

    Image description

    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.

    Image description

     

    11. Docker Desktop GUI

    Docker desktop also has GUI where we can utilize all the above-mentioned commands graphically.

    Image description

     

    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)