Categoría: Apuntes

Es un recopilatorio de algunos cursos que tomé en un pasado y decidí trasladarlos a mi blog, en su mayoría de Udemy, sin embargo, añadiré el link del curso para que lo aprendan a profundidad ya que como la categoría lo menciona, solo son apuntes o partes clave para recordar algún tema, no se encuentra gran detalle.

  • Maneja DOCKER en 5 días. Mejora como SysAdmin Linux o DevOps

    Docker vs Hypervisor

    Docker nos permite virtualizar contenedores que estos manejan su propio sistema independiente y estos se ejecutan en un mismo sistema operativo compartiendo recursos.

    Aquí podemos ver la diferencia de docker vs máquinas virtuales.

    Para este curso necesitaremos linux, en mi caso use una máquina virtual con Oracle Virtual Box, en mi caso opté por el viejo confiable que es Ubuntu.

    La instalación la hacemos usando la terminal con las instrucciones desde la página oficial: https://docs.docker.com/engine/install/ubuntu

    Docker Hub

    Docker Hub es un sitio oficial de docker donde tenemos una biblioteca de imagenes listas para montar, desde sistemas operativos y aplicativos, como sql server for linux, que es el que he usado para un VPS que tengo en OVH.

    Para este curso bajaremos la siguiente versión de debian: debian:bullseye

    Recordemos que cada imagen puede tener múltiples tags, eso hace referencia que son versiones del mismo sistema y este se define con dos puntos <:>, ejemplo:

    Al ejecutar docker run, es el comando para inicializar un contenedor, pero al no encontrarlo comienza a descargarlo desde el repositorio.

    El comando para enlistar los contenedores en ejecución es el siguiente:

    docker ps

    Sin embargo posiblemente se muestre vacío, por eso añadir el parámetro -a para mostrar todos, aunque estos no esten en ejecución.

    docker ps -a

    También existe un comando similar que nos dirá que imágenes que tenemos descargadas/disponibles, una imagen es digamos que el archivo fuente para poner en marcha un contenedor. El contenedor es la imagen ya ejecutada/corriendo.

    docker images

    Comandos esenciales:

    Mostrar información de nuestro estado general de docker_

    docker info 

    Crear un contenedor a partir de una imagen

    docker run 

    Eliminar un contenedor:

    docker rm <IdContedor>

    Ejecutar un contenedor con un comando -it que es una abreviación de –interactive.

    Esta parte me trajo confusión ya que no encontré mucha documentación así que indagando esta respuesta de stackoverflow me pareción interesante:

    Docker’s / allows you to send commands to the container via standard input («STDIN»), which means you can «interactively» type commands to the pseudo-tty/terminal created by the switch.
    -i--interactive-t

    Aquí realizando la ejecución, descarga la última imagen de debian , inicia el contenedor y la consola bash:

    Como podemos ver, el @ ahora tiene un identificador y ya no es el nombre de nuestro equipo, esto quiere decir que estamos dentro del contenedor y su terminal.

    Tip de productividad al trabajar en la consola de linux.

    Para copiar y pegar algo en automático de la terminal, simplemente seleccionamos y apretamos el tercer botón del mouse.

    Ejecutar un contenedor en segundo plano

    Para este ejemplo lanzaremos un contenedor de un servidor http (apache), con el siguiente comando:

    docker run httpd

    Nos ejecutará en primer plano y para salir tendremos que presionar Ctrl + C como si estuviéramos en un editor de texto y se cerrara el contenedor.

    Para ejecutar en segundo plano usaremos el comando -d

    docker run -d httpd

    Saber la ip asignada a un contenedor

    Usaremos el comando docker inspect, sin embargo esto muestra bastante información, entonces añadiremos el parámetro | less

    docker inspect 2b113500a6c8| less

    Para salir del modo less presionamos la tecla «

    Para acceder directamente a la línea que nos interesa, podemos apoyarnos del comando grep

    docker inspect 2b113500a6c8| grep IPAddress
    

    Final mente ejecutamos docker stop para detener nuestra imagen y luego borrarla con docker rm

    Docker ps opciones

    Para poder visualizar la ayuda o opciones de un comando, podemos poner el parámetro –help al final de nuestro comando, se desplegará lo siguiente:

    Opciones con el comando docker ps

    -aMuestra todos los contenedores independientemente de su estado
    -lúltimos contenedores creados (lates)
    -qSolo los identificadores de los contenedores
    -sCuánto espacio ocupa cada contenedor
    -fFiltra la lista de contenedores según criterios (Profundizar con documentación)
    –formatPodemos elaborar nuestro propio formato del listado y que campos traer.
    (Profundizar con documentación)

    Eliminar contenedores

    El comando rápido para borrar nuestro contenedor (previamente detenidos)

    docker rm <ContainerId>

    Detener todos los contenedores activos

    docker stop $(docker ps -q)

    Ejecutar comandos dentro de contenedores

    Para ejecutar un comando en un contenedor, este tiene que estar en ejecución, para evitar su cerrado ponemos la opción -di o –detach

    docker run -di debian

    Ejemplo para ejecutar un comando dentro de un contenedor:

    docker exec 683cc25900a6 uname -a

    Para entrar dentro de batch y ejecutar múltiples comandos, podremos entrar de modo interactivo con el siguiente comando:

    docker exec -it  683cc25900a6 bash
  • Aprende a dominar Git de cero a experto!

    Aprende a dominar Git de cero a experto!

    Instalamos Git

    https://git-scm.com/downloads/win

    En el instalador seleccionamos que utilicemos VIM como el editor por default

    También seleccionamos la opción “Git  from the command line and also from 3rd party software” y todas las opciones de SSH.

    Inicilizar un proyecto

    Necesitamos dos programas opciones:

    • cmder
    • GitKraken
    • Visual Studio Code

    Para crear un nuevo repositorio nos situamos en nuestra carpeta con CMDER y ejecutamos el siguiente comando

    git init
    

    Esto creara una carpeta llamada [.git],e n visual studio creamos un elemento [index.html]

    Para saber el estatus de los archivos ejecutamos

    git status
    

     Los elementos no trackeado se mostraran en rojo, para añadirlo al trackeo usamos el comando:

    git add index.html
    

    Luego volvemos a ejectuar [git status] y se mostrará en verde,  veremos que no hay commits, para crear la instantánea usamos el siguiente comando con el parámetro -m que es el que define el mensaje:

    git commit -m "Se crea el archivo index.html"  
    

    Volvemos a editar nuestro archivo index.html y posteriormente ejecutamos nuevamente el comando :

    git status
    

    esto nos mostrara la leyenda de «modified» y en color rojo, lo cuál quiere decir que hubo cambios y no se han commiteado.

    Para hacer un commit de todos los archivos podemos ejecutar el siguiente comando:

    git add --all
    

    y posteriormente un git commit -m

    GitKraken

    Bajamos el git client para windows

    • Github es para tener repositorios en la nube y son publicos
    • Gitbucket sirve para tener repositorios privados

    Abrimos nuestro repositorio, seleccionando la carpeta, veremos nuestros commits:

    Para ver cambios, seleccionamos el comit en el panel central y posteriormente vamos al panel inferior del lado izquierdo, seleccionamos el archivo y veremos los cambios:

    Para probar el tracking de cambios, regresamos al visual studio y editamos el titulo añadiendo cualquier texto, regresamos a gitkraken y se mostrará de la siguiente manera:

    añadimos el commit message desde git kraken

    GitHub

    Creamos un repositorio públic en github, dejamos las opciones por default. Una vez hecho esto, tenemos que actualizar nuestro repositorio local al de github, para eso nos dará 3 opciones

    • Crear uno nuevo y enlazar
    • Enlazar uno existente
    • Importar desde otro repositorio

    En nuestro caso será la opción de enlazar, para eso copiamos el código y lo ejecutamos en Cmder:

    git remote add origin https://github.com/resback/GitCeroAExpertoProyect.git
    git branch -M main
    git push -u origin main
    

    Para validar ejecutamos el siguiente comando:

    git remote -v
    

    Nos mostrará el fetch y push:

    Ahora en GitKraken hacemos un Push y regreamos al panel web de github para refrescar la página y veremos el contenido de nuestro repositorio que hicimos en nuestro local.

    Crear una nueva rama

    Para crear una nueva rama nos vamos al panel izquierdo donde tenemos nuestra ramas (localk) y damos click izquierdo en la opción «Create branch here» y le asignamos un nombre, en este caso «develop». Posteriormente la pusheamos

    Unir ramas

    Para unir ramas , estando en la rama a unir, damos click derecho en la otra rama que agregaremos los cambios, le damos la opción «Merge develop into master» y generará un commit con los archivos modificados

    Nos posicionamos en la rama destino (checkout) y hacemos el push para confirmar los cambios

    Clonar repositorio

    Para emular un equipo, creamos una carpeta llamada «devs» y creamos dos subcarpetas con el nombre de los respectios devs, en mi caso Artemisa y Apolo.

    En GitKraken nos vamos [File > Clone Repository ] y seleccionamos la URL y el folder destino

    En consola con Cmder, ejecutamos el siguiente comando:

    git clone https://github.com/resback/GitCeroAExpertoProyect
    

    Para enviar cambios al servidor central

    git push
    

     Para obtener cambios del servidor central

    git pull
    

    Para saber en que rama estoy:

    git branch
    

    Resolución de conflictos

    Cuando dos usuarios editen el mismo archivo y mismas líneas, al realizar el pull/push se generará un conflicto y git no podrá resolver, con la ayuda de git kraken podremos hacer la resolución de manera más fácil con la ayuda visual simplemente damos click en el archivo del recuadro derecho (Conflicted files):

    Y de desplegará lo siguiente:

    Una vez resuelto los conflictos damos click en Save

    Ignorar archivos trackeados

    Simplemente damos click en el archivo y podemos ignorar ese archivo o todos los que contengan dicha extensión.

    Posteriormente se creará el archivo .gitignore el cual contiene el siguiente dato:

    *.config
    

    Git Stash – Guardar cambios para ser commiteados posteriormente

    Es un área para almacenar cambios temporalmente para poder ser enviados al repositorio después.

    Para guardar tus cambios en el stash, ejecuta el comando:

    git stash save "mensaje opcional para ti"
    

    o de forma visual en Git Kraken:

    Para visualizar mediante comando los cambios pendientes:

    git stash list
    

    Tags

    Sirve para asignar versiones a los commits de mayor importancia, por ejemplo, la conclusión de una versión

    Comandos básicos:

    Listar etiquetas:

    $ git tag
    

    Crear una etiqueta, con el parámetro -a para crear una y posterior -m paara especificar un mensaje:

    $ git tag -a v1.4 -m 'my version 1.4'
    

    En gitKraen podemos hacerlo simplemente dando click secundario en el commit y seleccionar «Create tag here»:

    Para subirlo al repositorio del panel izquierdo, en la sección de tags damos click secundario:

    Gitflow

    Para habilitar gitflow le damos en Preference > Gitflow

    Ahora en nuestro proyecto tendremos estas opciones disponibles:

    Referencias:

    Aprende a dominar Git de cero a experto!
    https://www.udemy.com/course/aprende-a-dominar-git-de-cero-a-experto/

    Diferencia Entre Git Rebase Y Git Merge , Workshop De Git .
    https://medium.com/@MiguelCasas/diferencia-entre-git-rebase-y-git-merge-workshop-de-git-8622dedde2d7

    Git Stash Explicado: Cómo Almacenar Temporalmente los Cambios Locales en Git
    https://www.freecodecamp.org/espanol/news/git-stash-explicado/

    2.6 Fundamentos de Git – Etiquetado
    https://git-scm.com/book/es/v2/Fundamentos-de-Git-Etiquetado