meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
virtualizacion:docker [2021/05/14 10:01] lcvirtualizacion:docker [2023/01/18 14:11] (actual) – editor externo 127.0.0.1
Línea 30: Línea 30:
   * contenedor -> es el resultado de ejecutar una imágen(instancia), se podría decir que un contenedor es como una máquina virtal ligera., aunque en realidad es un **proceso** totalmente asilado del resto de procesos de la máquina sobre la que se ejecuta.  Sus principales características son : su portabilidad, inmutabilidad y ligereza   * contenedor -> es el resultado de ejecutar una imágen(instancia), se podría decir que un contenedor es como una máquina virtal ligera., aunque en realidad es un **proceso** totalmente asilado del resto de procesos de la máquina sobre la que se ejecuta.  Sus principales características son : su portabilidad, inmutabilidad y ligereza
  
-===== Comandos básicos ===== 
-=== Comandos de información === 
-<sxh>docker info</sxh> 
-<sxh>docker version</sxh> 
-==== Gestionar imágenes ==== 
-=== Buscar una imagen === 
-<sxh>docker search centos</sxh> 
-=== Listar las imágenes que tenemos descargadas === 
-<sxh>sudo docker images </sxh> 
-=== Obtener información sobre una imagen concreta === 
-<sxh>sudo docker history <imagen></sxh> 
  
- 
- 
-==== Gestionar Contenedores ==== 
-=== Descargar una imagen === 
-<sxh>sudo docker pull <nombreimagen</sxh> 
- 
-Por ejemplo para descargar la imagen de kali linux 
-<sxh>sudo docker pull kalilinux/kali-linux-docker</sxh> 
- 
-=== Arrancar un Contendor === 
-<sxh>sudo docker run -opciones nombre_imagen o codigo_imagen </sxh> 
-<sxh>sudo docker run -t -i kalilinux/kali-linux-docker /bin/bash</sxh> 
-<note>la opción -i es modo interactivo .</note> 
- 
-=== Arrancar un contenedor mapeando puertos === 
-<sxh>docker run -p <puerto host>:<puerto contenedor< <imagen></sxh> 
- 
-Por ejemplo para exponer los puerto de un contenedor con ngnix 
-<sxh>docker run -p 80:80 -p 443:443 nginx:latest</sxh> 
- 
-=== Ver los contenedores disponibles === 
-Para que nos muestre los contenedores en ejecución <sxh>docker ps</sxh> 
- 
-<sxh>docker ps -a </sxh> 
-Los campos que muestra son: 
-  * CONTAINER ID = Identificador único del contenedor 
-  * IMAGE = La imagen utilizado para la creación del contenedor 
-  * COMMAND =   Comando ejecutado en el momento de crear el contenedor 
-  * CREATED = Muestra el tiempo de vida que tiene el contenedor 
-  * STATUS = Muestra el estado actual del contenedor 
-  * PORTS = Muestra el puerto que la aplicación dentro del contenedor utiliza para recibir conexiones 
-  * NAMES = Nombre del contenedor 
- 
- 
-=== Acceder a un contenedor === 
-Para acceder al contenedor, además de crearlo, se puede hacer de dos maneras. Una es haciendo referencia al IMAGE ID y otra al repositorio (REPOSITORY) y la etiqueta (TAG). 
-<sxh>docker run -i -t b72879fa579a /bin/bash</sxh> 
- 
-O también: 
-<sxh>docker run -i -t ubuntu:14.04 /bin/bash</sxh> 
-<note>Para salir de una imagen, debes presionar CTRL+D.</note> 
- 
-=== Ver los volúmenes === 
-Lista los volúmenes creados en Docker. 
-<sxh>docker volume ls</sxh> 
- 
- Un volume nos permite guardar información de forma persistente. Permite que podamos destruir un contenedor sin perder los datos.  
- 
- 
-=== Etiquetar === 
-También podemos poner una etiqueta a nuestros contenedores,  y llamarlo por dicha etiqueta, lo cual nos permitirá organizar mejor todos nuestros contenedores. 
-Para poner una etiqueta 
-<sxh>docker tag id_imagen repositorio:etiqueta</sxh> 
- 
-Para llamar a dicho contenedor por la etiqueta, hacemos lo mismo que cuando lo llamamos por el  id pero poniendo ahora la etiqueta  
-<sxh>docker tun -i -t repositorio:etiqueta /bin/bash</sxh> 
-=== Iniciar contenedor ==== 
-<sxh>docker start imagenid</sxh> o bien con <sxh>docker start nombre</sxh> 
-Con estos comandos arrancamos el contenedor pero no nos conectamos al mismo. Si queremos acceder ejecutamos <sxh>docker attach id</sxh> 
-=== Parar contenedor=== 
-Para parar un contenedor <sxh>docker stop imagenid_o nombre </sxh> 
- 
-Para parar todos los contenedores <sxh>docker stop $(docker ps -a -q)</sxh> 
- 
-=== Salir === 
-Escribiendo **exit** en nuestro contenedor, o Pulsando CTRL+D salimos del mismo pero **parando la ejecución del mismo**. 
-Si queremos salir del contenedor pero que se siga ejecutando debemos presionar CTRL, después P y luego Q 
-=== Guardar Contenedor === 
-<sxh>docker commit imagenid_o nombre</sxh> 
-=== Borrar Contenedor === 
-<sxh>docker rm <contenedor> </sxh> 
- 
-Para borrar todos los contenedores <sxh>docker rm $(docker ps -a -q)</sxh> 
- 
-=== Copiar desde un contenedor === 
-Para copiar un fichero desde un contenedor a nuestra máquina hacemos 
-<sxh>docker cp <nombre_contenedor o id>:<ruta_al_fichero> <directorio_local_a_donde_copiar></sxh> 
- 
-También podemos hacerlo a la inversa. Desde la máquina local al contenedor 
- 
-=== Ejecutar comando === 
-Podemos ejecutar un comando dentro de un contenedor con  
-<sxh>docker exec <nombre o id contenedor> <comando></sxh> 
- 
-Por ejemplo para iniciar un shell intereactivo  
-<sxh>docker exec -it  micontenedor sh</sxh> 
- 
-=== logs === 
-Para ver los logs que está generando un contenedor, ejecutaríamos el comando <sxh>docker logs <nombre contenedor o id></sxh> 
- 
-=== Estadísticas de uso === 
-con el comando stats obtenemos estadísticas de uso y consumo de nuestro contenedor 
-<sxh>docker stats <nombre contenedor o id></sxh> 
- 
-=== Borrar contenedores sin uso === 
-con el comando <sxh>docker system prune </sxh> con la opción -a elimina_ 
-  * los contenedores que no se usan 
-  * los volúmenes que no se usan  
-  * las imágenes que no se están usando 
-  * las redes que no se están usando 
-<note>Mucho ojo al ejecutar este comando en sistemas en producción </note> 
  
 === Source === === Source ===
Línea 225: Línea 113:
   * https://platzi.com/blog/multiples-contedenores-docker/   * https://platzi.com/blog/multiples-contedenores-docker/
   * https://www.gitbook.com/book/jsitech1/meet-docker/details   * https://www.gitbook.com/book/jsitech1/meet-docker/details
 +  * https://iesgn.github.io/curso_docker_2021/
 +  * https://fp.josedomingo.org/iawgs/u06/