Con docker info
se puede ver toda la informacion de docker
Se trabaja con una imagen ya creada para el entendimiento de esta seccion
docker run -p 8080:80 -p 7080:7080 --name conBilling sotobotero/billingapp
docker build -t billingapp --no-cache --build-arg JAR_FILE=target/*.jar .
# Run image
docker run -d -p 80:80 -p 7080:7080 --name localbillingApp billingapp
docker tag billingapp ketbome/image-billingapp
# Tambien se puede agregar una version
docker tag billingapp ketbome/image-billingapp:v1
# Push al repositorio (Loguearse anteriormente)
docker push ketbome/image-billingapp
docker inspect localbillingApp
docker exec -it {nombre_contenedor} sh
Note
La version de Docker Compose no puede ser superior a la del Docker engine Docker versioning
docker compose -f {nombre_archivo} up -d
# Pausar
docker compose -f .\stack-billing.yml stop
# Remover
docker compose -f .\stack-billing.yml rm
Para ver las estadisticas de los recursos de forma basica se puede hacer:
docker stats
Inicializar dicker swarm
docker swarm init
Desplegar
docker stack deploy -c .\stack-billing.yml billing
docker stack ps billing
Para poder acceder a la aplicacion hay que acceder por la IP de swarm del nodo que se puede ver en docker info
docker stack rm billing
- Pods: Unidades básicas de despliegue y gestión, que agrupan uno o más contenedores con almacenamiento y red compartidos.
- Deployments: Describen el estado deseado de una implementación, gestionando las réplicas de la aplicación.
- Services: Definen cómo exponer una aplicación ejecutada en un conjunto de pods, actuando como balanceador de carga.
- ConfigMaps: Permiten desacoplar la configuración de las imágenes, almacenando variables de entorno, argumentos de línea de comandos y configuración de volúmenes.
- Labels: Pares clave-valor utilizados para organizar, seleccionar, consultar y monitorear objetos de manera eficiente.
- Selectores: Mecanismos para realizar consultas basadas en etiquetas y filtrar objetos según criterios específicos.
Los comandos basicos:
minikube start
minikube pause
minikube unpause
minikube stop
minikube config set memory 16384
minikube addons list
minikube start -p aged --kubernetes-version=v1.16.1
minikube delete --all
Tambien se tiene un dashboard:
minikube dashboard --url
kubectl run kbillingapp --image=sotobotero/udemy-devops:0.0.1 --port=80 80
Ver los pod
kubectl get pod
Ver la descripcion del pod
kubectl describe pod kbillingapp
Exponer el puerto para que lo vea el cliente
kubectl expose pod kbillingapp --type=LoadBalancer --port=8080 --target-port=80
Eliminar el pod
kubectl delete -n default pod kbillingapp
Para hacerlo poner todos los archivos uno por uno despues de la -f, Ejemplo:
kubectl apply -f .\secret-dev.yaml
Idealmente en este orden
- Variables de entorno
- ConfigMap
- Almacenamiento/Volumes
- Deployments
- Services
Para eliminar:
kubectl delete -f .\
Crear la imagen con jenkins y maven
docker build -t jenkins-cicd --no-cache .
Correr la imagen con sus respectivos puertos
docker run -d -p 8080:8080 -p 50000:50000 --name jenkins jenkins-cicd