Posted by q3it on viernes, noviembre 26, 2021 in Micro-servicios
Docker tiene una arquitectura típica cliente-servidor y no es un servidor web sino un "daemon", un servicio del sistema operativo.
Contenedores
- Es lo más fundamental de Docker.
- La anotación más importante es que un contenedor es una agrupación de procesos.
- Es una entidad lógica.
- Los procesos no pueden ver más allá de ese contenedor.
- No tiene forma de consumir más recursos que los que el propio contenedor les permite.
- Lo único que se comparte entre una máquina host y un contenedor es el kernel.
- ¿ A que parte del disco puede tener acceso un contenedor? Todo se limita por el Paht o la raíz del directorio.
Uso Genérico
- info muestra información relativa a la instalación de Docker, como por ejemplo el número y estado de los contenedores, la versión del servidor, el almacenamiento utilizado, los plugins instalados, etc...
- version indica las versiones instaladas, tanto de servidor como de cliente
- system permite ejecutar comandos relacionados con la gestión de Docker
- prune elimina todos los contenedores detenidos, todas las redes que no estén en uso por al menos un contenedor, imágenes colgadas y la caché de construcción (build cache)
Gestión de imágenes
- images [-a] muestra las imágenes existentes en la caché de imágenes local. Para cada una, nos muestra su tag, el image ID, la fecha de creación y su tamaño. Parámetros:
- -a muestra todas las imágenes intermedias (por defecto se ocultan)
- search <término>[:<tag>] busca imágenes en el repositorio Docker Hub cuyo nombre coincida con <término>. Si se especifica :<tag>, entonces filtra aquellas imágenes que contengan dicho tag.
- pull <imagen>[:<tag>] descarga de Docker Hub la imagen <imagen> y la instala en nuestro repositorio Docker local. Si se especifica :<tag>, entonces descarga el tag especificado.
- build [-t <DockerId>/<proyecto>[:<tag>]] [-f <fichero>] <carpeta> crea la imagen definida en el Dockerfile de la carpeta <carpeta>. <carpeta> debe contener todos los elementos necesarios para crear la imagen. Para crear la imagen final, Docker va recorriendo cada paso del fichero Dockerfile, creando un contenedor temporal a partir de la imagen guardada correspondiente al contenedor ejecutado en el paso anterior. La imagen de salida del último paso será la imagen que se transfiera al archivo final. Parámetros:
- -t <DockerId>/<proyecto>[:<tag>] indica un nombre para la imagen creada. Este nombre está formado por el DockerId del usuario que lo crea, seguido de /, seguido de un nombre de proyecto, seguido opcionalmente de : y un nombre de tag o versión. Normalmente se suele usar el texto latest para indicar que es la última versión estable. En caso de no usar el parámetro <tag>, se le asignará latest.
- -f <fichero> le indica que en vez de utilizar el fichero por defecto Dockerfile, deberá utilizar <fichero> para la construcción.
- docker ps : Lista los contenedores que corren.
- docker ps -a : Muestra los contenedores que están parados y también los que están corriendo.
- docker inspect (id del contenedor) : Nos muestra toda la información del contenedor.
- docker inspect -f '{{json.config.env}}' condescending_lamport : Esta instrución nos trae el Paht en el que está configurado el contenedor.
- echo PAHT : Nos trae el paht de mi máquina.
- docker rename condescending_lamport hola_mundo : Esta instrucción cambia el nombre del contenedor o lo renombra. Nota: Con cada docker run estaríamos creando un contenedor nuevo, lo que comparten es la imagen ya creada.
- docker logs hola_mundo : Esta instrucción nos trae los logs del contenedor hola_mundo y todo lo que concierne a los movimientos que tuvo el contenedor.
- docker rm hola_mundo : Esta instrucción borra el contenedor.
Modo interactivo
- docker run it ubuntu : Esto pone el contenedor ubuntu de forma iterativa.
- Esta instrucción nos entra al contenedor y le podríamos consultar la data así... cat /etc/lsb-release
- Si quisiéramos salir le damos exit, con esto, mataríamos el proceso.
Referencia web Listado de Comandos de Docker CLI | ramoncarrasco.es