| title | Mastering DevOps: Unleashing the Power of Top 10 Containers |
|---|---|
| datePublished | Mon Oct 23 2023 09:35:53 GMT+0000 (Coordinated Universal Time) |
| cuid | clo2pd1o4000508l1fc7s2a0i |
| slug | mastering-devops-unleashing-the-power-of-top-10-containers |
| cover | https://cdn.hashnode.com/res/hashnode/image/upload/v1697873064928/b6cef505-2633-4ffb-8d85-7ece1500500d.png |
| tags | nginx, devops, gitlab, containers, jenkins |
In the realm of DevOps, the adoption of containerized solutions has become instrumental in enhancing development workflows. These containers encapsulate applications and their dependencies, ensuring consistency across various environments. If you’re delving into the world of DevOps, understanding the top containers can significantly elevate your development and deployment processes. Let’s dive into the top 10 DevOps containers that are reshaping the landscape in 2023.
GitLab stands as a comprehensive platform for DevOps collaboration. Offering integrated CI/CD capabilities, it facilitates swift container deployment and seamless collaboration among teams.

yamlCopy codegitlab:
image: gitlab/gitlab-ee:latest
hostname: 'gitlab.mydomain.com'
restart: always
volumes:
- '~/homelabservices/gitlab/data:/var/opt/gitlab'
- '~/homelabservices/gitlab/config:/etc/gitlab'
- '~/homelabservices/gitlab/logs:/var/log/gitlab'
container_name: gitlabJenkins, a trusted CI/CD solution, specializes in automated builds and tests for containerized applications. Its extensive plugin ecosystem supports multiple containers and ensures continuous integration in container environments.

yamlCopy codeversion: '3.8'
services:
jenkins:
image: jenkins/jenkins:lts
privileged: true
user: root
ports:
- 8080:8080
- 50000:50000
container_name: jenkins
volumes:
- /home/jenkins_compose/jenkins_configuration:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sockHarbor provides a secure container registry crucial for managing and securing container images. With role-based access control and vulnerability scanning, it ensures the integrity of your containerized applications.

bashCopy codecurl -LO https://raw.githubusercontent.com/bitnami/containers/main/bitnami/harbor-portal/docker-compose.yml
curl -L https://github.com/bitnami/containers/archive/main.tar.gz | tar xz --strip=2 containers-main/bitnami/harbor-portal && cp -RL harbor-portal/config . && rm -rf harbor-portal
docker-compose upHashicorp Vault is essential for secrets management within containers. It generates dynamic secrets, encrypts data in transit and at rest, and ensures sensitive information remains secure without hardcoding in pipelines or configuration files.

yamlCopy codeversion: '3.6'
services:
vault:
image: vault:latest
container_name: vault
restart: on-failure:10
ports:
- "8201:8201"
environment:
VAULT_ADDR: 'https://0.0.0.0:8201'
cap_add:
- IPC_LOCK
volumes:
- vault-volume:/dataArgoCD is a deployment maestro for Kubernetes environments, ensuring consistent deployments across multiple platforms. Its declarative approach and visualization tools streamline the deployment process.

yamlCopy codeversion: '2'
services:
argo-cd:
image: docker.io/bitnami/argo-cd:2SonarQube guarantees high code quality within containers. Through continuous code quality checks and automated reviews, it aids in identifying and resolving bugs and vulnerabilities in containerized applications.

yamlCopy codeversion: "3"
services:
sonarqube:
image: sonarqube:community
hostname: sonarqube
container_name: sonarqube
depends_on:
- db
environment:
SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
ports:
- "9000:9000"
db:
image: postgres:13
hostname: postgresql
container_name: postgresql
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonarPrometheus is a powerful monitoring tool for observing multiple containers. Its multi-dimensional data modeling and efficient alerting systems empower DevOps teams to maintain optimal container performance.

yamlCopy codeversion: '3.8'
volumes:
prometheus_data: {}
services:
prometheus:
image: prom/prometheus
restart: always
volumes:
- ./prometheus:/etc/prometheus/
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
ports:
- 9090:9090Grafana excels in visualizing and analyzing data within containers. With customizable dashboards and diverse panel plugins, it offers proactive issue identification and robust data visualization capabilities.

yamlCopy codeversion: "3.8"
services:
grafana:
image: grafana/grafana-enterprise
container_name: grafana
restart: unless-stopped
ports:
- '3000:3000'Traefik efficiently balances load across containers, providing automatic service discovery and middleware support. Its intuitive dashboard simplifies monitoring, making it an invaluable tool for DevOps teams.

yamlCopy codeversion: '3.3'
services:
traefik2:
image: traefik:latest
restart: always
command:
- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock
container_name: traefikNginx Proxy Manager simplifies proxy management within containers, supporting both HTTP and HTTPS protocols. With SSL support and easy management of Let’s Encrypt certificates, it ensures secure and streamlined proxy hosting.

yamlCopy codeversion: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: always
networks:
- nginxproxy
ports:
- '80:80'
- '443:443'
- '81:81'
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: 'jc21/mariadb-aria:latest'
restart: always
networks:
- nginxproxy
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./mysql:/var/lib/mysqlIncorporating these containers into your DevOps stack can revolutionize your development process. By leveraging their capabilities, you empower your team to build, deploy, and manage containerized applications with efficiency and confidence.
I hope this will help you to revolutionize your development process and we'll be coming up with similar content in our upcoming blogs. So, be in touch with us by following us on the socials.
See ya 👋
Join our community on Discord - DevsInTech 🚀
Follow us on Twitter - DevsInTech!!!