title | datePublished | cuid | slug | cover | tags |
---|---|---|---|---|---|
Mastering DevOps: Unleashing the Power of Top 10 Containers |
Mon Oct 23 2023 09:35:53 GMT+0000 (Coordinated Universal Time) |
clo2pd1o4000508l1fc7s2a0i |
mastering-devops-unleashing-the-power-of-top-10-containers |
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.
![Gitlab continuous integration and continuous deployment](https://www.virtualizationhowto.com/wp-content/uploads/2023/10/Gitlab-continuous-integration-and-continuous-deployment.png align="left")
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: gitlab
Jenkins, 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.
![Jenkins trusted cicd deployment management](https://www.virtualizationhowto.com/wp-content/uploads/2023/10/Jenkins-trusted-CICD-deployment-management.png align="left")
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.sock
Harbor 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.
![Harbor registry](https://www.virtualizationhowto.com/wp-content/uploads/2023/10/Harbor-registry.png align="left")
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 up
Hashicorp 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.
![Hashicorp vault secrets management](https://www.virtualizationhowto.com/wp-content/uploads/2023/10/Hashicorp-vault-secrets-management.jpg align="left")
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:/data
ArgoCD is a deployment maestro for Kubernetes environments, ensuring consistent deployments across multiple platforms. Its declarative approach and visualization tools streamline the deployment process.
![Argocd consistent deployments](https://www.virtualizationhowto.com/wp-content/uploads/2023/10/ArgoCD-consistent-deployments.png align="left")
yamlCopy codeversion: '2'
services:
argo-cd:
image: docker.io/bitnami/argo-cd:2
SonarQube 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.
![Sonarqube high quality code](https://www.virtualizationhowto.com/wp-content/uploads/2023/10/Sonarqube-high-quality-code.png align="left")
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: sonar
Prometheus 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.
![Prometheus system monitoring tool](https://www.virtualizationhowto.com/wp-content/uploads/2023/10/Prometheus-system-monitoring-tool.png align="left")
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:9090
Grafana 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.
![Grafana visualization](https://www.virtualizationhowto.com/wp-content/uploads/2023/10/Grafana-visualization.png align="left")
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.
![Traefik router and load balancer](https://www.virtualizationhowto.com/wp-content/uploads/2023/10/Traefik-Router-and-Load-Balancer.jpg align="left")
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: traefik
Nginx 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.
![Nginx proxy manager](https://www.virtualizationhowto.com/wp-content/uploads/2023/10/Nginx-Proxy-Manager.png align="left")
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/mysql
Incorporating 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!!!