• Saltar a la navegación principal
  • Skip to main content
  • Saltar a la barra lateral principal

Geekebrains

Para programadores, maker y geeks en general

  • Inicio
  • YouTube
  • Zona makers!
  • Zona Coders!
  • Zona Junior!
Estás aquí: Inicio / Zona Coders! / Docker

19 febrero, 2021 Por admin8049 Deja un comentario

Docker

Docker es una maravillosa herramienta disruptiva que está revolucionando el mundo de la virtualización. Nos permite levantar sistemas operativos como quien levanta el NotePad. Realmente al principio parece magia. Bueno para los que no hayan utilizado virtualización, Docker le dejará desconcertado, y a los que ya están familiarizados, simplemente alucinados, o por lo menos a mi me pasó.

Pero al final que es? Imagínate que pudieras tener en Windows un sistema operativo linux, con un Apache y un MySQL con un WordPress en un fichero de menos de 120 megas, y que diciendo las palabras mágicas, en menos de un segundo este respondiendo peticiones web. Pues no lo imagines esto lo puedes hacer con Docker. Pero imaginate que ese fichero tal cual lo llevas a un Mac y zas funciona, y lo vuelvo a llevar a un Ubuntu y lo mismo. A que parece difícil de creer. Sobre todo que se ejecuta instantáneamente!!

Conceptos

Otra cosa impresionante es que hay miles de preinstalaciones en el repositorio de docker.com hechas por la comunidad con todas las configuraciones que se te puedan ocurrir, un Tomcat, un Apache con MySQL, un Nginx con PostgreSQL, programas preinstalados como WordPress, Odoo, … lo que se te ocurra ya lo habrá montado alguien, antes que tú.

A estas pre-instalaciones/plantillas se les llaman imágenes. Cuando tengas instalado docker solo tendrás que indicar que imagen quieres ejecutar y docker se encarga de bajarlo a tu repositorio local y ejecutarlo.

La copia/instancia de una imagen que se puede ejecutar se llama contenedor. Una imagen puede hacer ejecutar varios contenedores al mismo tiempo.

Cada vez se para un contenedor y se vuelve a arrancar, todas las carpetas se incian como esta definido por la imagen inicial. Si se quieren guarda esos datos para otro momento, hay que enlazar carpetas del contenedor a carpetas de tú maquina o a unos ficheros llamados volumenes que gestiona docker.

Imagen –> Contenedor parado –> Contenedor en Ejecución

Bueno pues ya es el momento de que os dirijáis a la página de docker y lo instaleis, da igual el sistema operativo.


Chuleta rápida

# Descarga (si no tiene la imagen de un ubuntu) y la arranca.
>docker run ubuntu

# Visualiza los procesos en curso de docker.
>docker ps -a

# Esto arranca una imagen y le manda hacer un comando que hace # q nunca se cierre la imagen porque no tiene fin.
>docker run nombre_image tail -f /dev/null

# Ejecuta la imagen de forma interactiva para poder ejecutar su # shell.
>docker run -it ubuntu 

# Ejecuta un comando en el contenedor, en este caso un bash.
>docker exec -it nombre_contenedor bash

# Ejecuta el contenedor pero el --detach o -d  si es un proceso # iterativo, no lo muestra y te deja continuar. 
# El -p 8080:8080 hace visible el puerto para la maquina 
# anfitriona donde se ejecuta el docker. Primer puerto es como # sale al pc donde se ejecuta y el segundo es el puerto de 
# dentro del contenedor. 
>docker run --detach --name servidor_http -p 8080:80 nginx 

# -v indica q una carpeta de dentro del contenedor se asocia a # una carpeta de mi computadora.
>docker run --name db -d -v c:/User/mine/MongoData:/data/db mongo

#  -- inspect muestra un json con toda la configuración de ese contenedor.
>docker --inspect nombre_contenedor

# Limpia volúmenes que no están asociados a ningún contendor.
>docker volume prune

# Muestra lista de volúmenes de tu equipo.
>docker volume ls
 
# Crea un nuevo volumen.
>docker volume create nombre_volumen
 
# --mount Asociar el directorio de un contenedor a un volumen.
>docker run -d --name db --mount src=dbdata,dst=/data/db

>docker run --restart no --name crash1 crashing 

# Para ver los logs de una instancia. 
>docker logs nombre_instacia_docker
 
# Para matar un proceso que no se da cerrado
>docker kill -s 9 nombre_instancia

Listado de Comandos Docker

Para ejecutar los comando de docker tendrás que escribir:  docker comando

docker search imagen_a_buscar

Busca todos los paquetes haya en la web de docker.com que tengan la imagen_a_buscar (por ejemplo apache)  y te los muestra.

docker run imagen

Descarga si no la tienes y ejecuta en tu equipo la imagen indicada. Normalmente el nombre del repositorio consta del nombre del que la hizo la imagen, el nombre de la imagen y la versión, pero si no se indica la versión (o no la hay) coge la última:

proveedor/nombre:versión   

Las imágenes mas «oficiales» lo simplifican, por ejemplo la versión 14.04 de ubuntu será:

ubuntu:14.04

pull imagen

Solo se descarga la imagen.

image ls

Muestra todas las imágenes que tienes descargadas.

ps

Muestra las imágenes que están en ejecución.

rm

Elimina un contenedor.

rmi

Elimina una imagen del equipo.

start imagen

Arranca una imagen.

stop imagen

Para la imagen.

docker run -i imagen comando_shell

Ejecuta un comando del shell dentro de la imagen. Ej: docker run -i ubuntu ls

run -i imagen /bin/bash

Te abre el terminal de la máquina de la imagen para ejecutar comandos shell. Para salir hay que ejecutar la orden exit.

commit

Crea una nueva imagen de los cambios del contenedor

attach

Adjunta a un contenedor corriendo

build

Construye un contenedor de un archivo Docker

cp

Copia archivos/carpetas de los contenedores del sistema de archivos a la ruta de host

diff

Inspecciona los cambios en el sistema de archivos de un contenedor

events

Obtiene eventos en tiempo real desde el servidor

export

Transmite el contenido de un contenedor como un archivo tar

history

Muestra el historial de una imagen

images

Lista las imágenes

import

Crea una nueva imagen del sistema de archivos de los contenidos a partir de un archivo tar

info

Muestra el sistema de información de la pantalla

insert

Inserta un archivo en una imagen

inspect

Regresa información de bajo nivel en un contenedor

kill

Mata a un contenedor en ejecución (corriendo)

load

Carga una imagen desde un archivo tar

login

Registra la sesión para el servidor de registro de Docker

logs

Obtiene los registros de un contenedor

port

Busca el puerto público el cual está NAT-eado y lo hace privado (PRIVATE_PORT)

pull

Descarga una imagen o un repositorio del servidor de registros Docker

push

Empuja una imagen o un repositorio del servidor de registro Docker

restart

Reinicia un contenedor en ejecución (corriendo)

save

Guarda una imagen en un archivo tar

tag

Etiqueta una imagen en un repositorio

top

Busca los procesos en ejecución de un contenedor

version

Muestra la información de versión de Docker


Archivado en: Conceptos, Zona Coders! Etiquetado como: docker

Entrada anterior: « TypeScript
Siguiente entrada: Dockerfile »

Interacciones del lector

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Barra lateral primaria

Categorías

  • Conceptos
  • Experimentos
  • GeekeBlocks
  • Noticias Geek
  • Proyectos
  • Sin categoría
  • Zona Coders!
  • Zona Junior!
  • Zona makers!

Etiquetas

Arduino Arduino nano Atom backup Buenas prácticas docker docker-compose dockerfile ECMAScript6 (2015) EditorConfig ES6 ESLint Expresiones regulares git IDE Java javascript JSON JSX lenguajes de programación Librerías de JavaScript mac Material UI MongoDb MVC NetBeans node NodeJS NoSQL Notepad++ nRF24L01 nvm odoo package.json plugins Prettier QWeb ReactJS shell Spring Framework ubuntu Visual Studio Visual Studio Code wordpress yaml

Entradas recientes

  • Firebase
  • _Lodash
  • Crear un entorno de desarrollo WordPress con Docker, en una patada
  • docker-compose
  • Dockerfile
  • Docker
  • TypeScript
  • Cómo tener distintas versiones de node en tu equipo?
  • Heroku
  • Node JS

Copyright © 2021 · GeekeZonia · Aviso Legal · Política de Cookies · Política de Privacidad · Iniciar sesión

Utilizamos cookies propias y de terceros para ofrecer nuestros servicios, recoger información estadística e incluir publicidad. Si continua navegando acepta su instalación y uso. Leer Mas. Acepta
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.

Non-necessary

Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.

SAVE & ACCEPT