DevBlog

Modern development tutorials and best practices

Getting Started with Docker Containers

Author
John Davidson
Published on March 15, 2024 · 8 min read

Docker has revolutionized how we build, ship, and run applications. Whether you're a seasoned developer or just starting your DevOps journey, understanding containerization is essential in today's cloud-native world.

What is Docker?

Docker is a platform that enables developers to package applications into containers—standardized executable components that combine application source code with all the operating system libraries and dependencies required to run that code in any environment.

Installing Docker

Getting started with Docker is straightforward. For macOS and Windows, download Docker Desktop from the official website. For Linux users, you can install Docker Engine directly:

# Update package index
sudo apt-get update

# Install required packages
sudo apt-get install ca-certificates curl gnupg

# Add Docker's official GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Install Docker Engine
sudo apt-get install docker-ce docker-ce-cli containerd.io

Your First Container

Let's run your first container! The classic "Hello World" example demonstrates how quickly you can get up and running:

docker run hello-world

This simple command does several things: it checks if the hello-world image exists locally, downloads it if necessary, creates a container from the image, and executes it.

Building Your Own Images

The real power of Docker comes from building custom images. Create a Dockerfile in your project directory:

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

Build your image with:

docker build -t my-app:v1 .

Best Practices

As you dive deeper into Docker, keep these best practices in mind:

Conclusion

Docker containers provide consistency across development, testing, and production environments. This tutorial covered the basics, but there's much more to explore including Docker Compose, networking, volumes, and orchestration with Kubernetes.

Happy containerizing! Feel free to drop questions in the comments below.

Tags: Docker, DevOps, Containers, Tutorial, Beginner-Friendly