DEV Community

Cover image for Docker: A Practical Guide with Arch Linux Setup: Part-1
Sujit Kumar
Sujit Kumar

Posted on • Updated on

Docker: A Practical Guide with Arch Linux Setup: Part-1

Docker Intro:

Docker has revolutionized the way we develop, deploy, and run applications. It provides a lightweight and efficient solution for packaging, distributing, and running software in isolated environments called containers. This blog post aims to guide you through the basics of Docker, including its setup on an Arch-based Linux system.

Docker Basics

Installation

To install Docker on Arch Linux, you can use the following commands:

sudo pacman -S docker
sudo systemctl start docker
sudo systemctl enable docker
Enter fullscreen mode Exit fullscreen mode

This will install Docker and start the Docker daemon.

Adding User to Docker group

To add the user to the docker group, use the following command:

sudo usermod -aG docker $USER
Enter fullscreen mode Exit fullscreen mode

This will add the user to the docker group without requiring sudo privileges.
Note: It requires to restart your device.

Running a Container

Let's start with a simple example. To run an Ubuntu container interactively, use:

docker run -it ubuntu
Enter fullscreen mode Exit fullscreen mode

Find Images in Docker Hub

docker search jenkins
Enter fullscreen mode Exit fullscreen mode

Download Docker Image from Docker Hub to Local

docker pull jenkins
Enter fullscreen mode Exit fullscreen mode

Delete Local image

docker rmi image_name
Enter fullscreen mode Exit fullscreen mode

This command pulls the Ubuntu image from the Docker Hub and starts an interactive shell within the container.

Managing Containers

  • Start/Stop a Container:
docker start container_name
docker stop container_name
Enter fullscreen mode Exit fullscreen mode
  • List Containers:
docker ps -a
Enter fullscreen mode Exit fullscreen mode
  • Go Inside Docker Container:
docker attach container_name
Enter fullscreen mode Exit fullscreen mode
  • Execute a Command in a Running Container:
docker exec container_name command
Enter fullscreen mode Exit fullscreen mode
  • Attach to a Running Container:
docker exec -it container_name bash
Enter fullscreen mode Exit fullscreen mode
  • Remove a Container:
docker rm container_name
Enter fullscreen mode Exit fullscreen mode
  • Inspect Container Details:
docker inspect container_name
Enter fullscreen mode Exit fullscreen mode
  • Diff Containers
docker diff container_name
Enter fullscreen mode Exit fullscreen mode
  • Commit changes into container and create updated image
docker commit container_name new_image_name
Enter fullscreen mode Exit fullscreen mode

Listing Images

docker images
Enter fullscreen mode Exit fullscreen mode

Dockerization with Dockerfile

A Dockerfile is a script that contains a set of instructions for building a Docker image. Here's a basic example for a Node.js application:

FROM ubuntu

RUN apt-get update && \
    apt-get install -y curl && \
    curl -sL https://deb.nodesource.com/setup_14.x | bash && \
    apt-get install -y nodejs

WORKDIR /app

COPY package.json package-lock.json ./

RUN npm install

COPY . .

CMD ["node", "main.js"]
Enter fullscreen mode Exit fullscreen mode

To build the image, navigate to the directory containing the Dockerfile and run:

docker build -t your_image_name .
Enter fullscreen mode Exit fullscreen mode

Container Networking

To expose a port from the container to the host system, use the -p flag. For example:

docker run -it -p 1025:1025 your_image_name
Enter fullscreen mode Exit fullscreen mode

This maps port 1025 on the host to port 1025 on the container.

Conclusion

Docker simplifies the process of packaging, distributing, and running applications. In this guide, we covered basic Docker commands, the creation of Dockerfiles, and container networking. This should serve as a solid foundation for further exploration into the world of containerization.
Happy Dockering!

Top comments (0)