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:comandos [2021/06/30 13:05] lcvirtualizacion:docker:comandos [2023/01/18 14:37] (actual) – editor externo 127.0.0.1
Línea 23: Línea 23:
 === Borrar una imagen === === Borrar una imagen ===
 <sxh>docker image rm </sxh> <sxh>docker image rm </sxh>
 +<sxh>docker rmi</sxh>
  
  
 ==== Gestión de Contenedores ==== ==== Gestión de Contenedores ====
 +=== Crear un contenedor ===
 +<sxh>docker create --name <nombre> <imagen></sxh>
 +Por ejemplo <sxh>create --name mihola holamundo</sxh>. Crea un contenedor llamado mihola, usando una imagen que se llama holamundo.
 +<note>Lo crea pero no lo arranca</note>
 +
 === Arrancar un Contendor === === Arrancar un Contendor ===
 <sxh>sudo docker run -opciones nombre_imagen o codigo_imagen </sxh> <sxh>sudo docker run -opciones nombre_imagen o codigo_imagen </sxh>
 <sxh>sudo docker run -t -i kalilinux/kali-linux-docker /bin/bash</sxh> <sxh>sudo docker run -t -i kalilinux/kali-linux-docker /bin/bash</sxh>
 <note>la opción -i es modo interactivo .</note> <note>la opción -i es modo interactivo .</note>
 +
 +Por defecto docker usa nombre de contenedores aleatorios, si queremos que nuestro contenedor tenga un nombre determinado haremos 
 +<sxh>docker run --name <nombreimagen></sxh>
  
 === Arrancar un contenedor mapeando puertos === === Arrancar un contenedor mapeando puertos ===
-<sxh>docker run -p <puerto host>:<puerto contenedor<imagen></sxh>+<sxh>docker run -p <puerto host>:<puerto contenedor<imagen></sxh>
  
 Por ejemplo para exponer los puerto de un contenedor con ngnix Por ejemplo para exponer los puerto de un contenedor con ngnix
 <sxh>docker run -p 80:80 -p 443:443 nginx:latest</sxh> <sxh>docker run -p 80:80 -p 443:443 nginx:latest</sxh>
 +<note> Si estamos usando una imagen creada con dockerfile en la que hemos definido un puerto . Entonces usaremos la opción P mayúscula para que el mismo nos mapee un puerto aleatorio del host al que hemos definido en el contenedor.
 +<sxh>docker run -P --name micontenedor miimagen:latest</sxh></note>
  
 === Ver los contenedores disponibles === === Ver los contenedores disponibles ===
 Para que nos muestre los contenedores en ejecución <sxh>docker ps</sxh> Para que nos muestre los contenedores en ejecución <sxh>docker ps</sxh>
- +Para que nos muestr todos los contenedores, activos o inactivos <sxh>docker ps -a </sxh>
-<sxh>docker ps -a </sxh>+
 Los campos que muestra son: Los campos que muestra son:
   * CONTAINER ID = Identificador único del contenedor   * CONTAINER ID = Identificador único del contenedor
Línea 76: Línea 86:
 Para llamar a dicho contenedor por la etiqueta, hacemos lo mismo que cuando lo llamamos por el  id pero poniendo ahora la etiqueta  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> <sxh>docker tun -i -t repositorio:etiqueta /bin/bash</sxh>
 +
 +Es habitual por ejemplo a una imagen que tengamos creada ponerle una etiqueta de latest para indicar que es la última versión disponible
 +<sxh>docker tag miimagen:version miimagen:latest</sxh>
 +De esta forma si hacemos un **docker images** veremos que la misma imagen aparece dos veces pero si nos fijamos en campo **image id** es la misma imagen. Es decir es como si hubieramos creado un enlace para poder llamar a la misma imagen.
 === Iniciar contenedor ==== === Iniciar contenedor ====
 <sxh>docker start imagenid</sxh> o bien con <sxh>docker start nombre</sxh> <sxh>docker start imagenid</sxh> o bien con <sxh>docker start nombre</sxh>
Línea 88: Línea 102:
 Si queremos salir del contenedor pero que se siga ejecutando debemos presionar CTRL, después P y luego Q Si queremos salir del contenedor pero que se siga ejecutando debemos presionar CTRL, después P y luego Q
 === Guardar Contenedor === === Guardar Contenedor ===
-<sxh>docker commit imagenid_o nombre</sxh>+Las imágenes son plantillas de sólo lectura, que usamos de base para lanzar contenedores. Por tanto todo lo que hagamos en el contenedor sólo persiste en ese contenedor y **NO** se guardan en la imagen. 
 + 
 +Si queremos que dichos cambios sean permanentes, debemos crear una nueva imagen con el contenedor personalizado. 
 +<sxh>docker commit -m "comentario" -a "autor" <identificadordelcontenedor> nuevonombreimagen</sxh> 
 + 
 +Por ejemplo 
 +<sxh>docker commit -m "Imagen actualizada centos" -a "LC" c605d57c9aa1 centosactualizado:v1</sxh> 
 + 
 +Con commit creamos una nueva imagen en nuestro repositorio local. 
 === Borrar Contenedor === === Borrar Contenedor ===
 <sxh>docker rm <contenedor> </sxh> <sxh>docker rm <contenedor> </sxh>
 +<note>Se pueden borrar múltiples contenedores si se especifican múltiples ids</note>
 +
  
 Para borrar todos los contenedores <sxh>docker rm $(docker ps -a -q)</sxh> Para borrar todos los contenedores <sxh>docker rm $(docker ps -a -q)</sxh>
Línea 109: Línea 134:
 Por ejemplo para iniciar un shell intereactivo  Por ejemplo para iniciar un shell intereactivo 
 <sxh>docker exec -it  micontenedor sh</sxh> <sxh>docker exec -it  micontenedor sh</sxh>
 +
 +También
 +<sxh>docker exec -it micontenedor bash</sxh>
 +
 +Para sar un listado de los procesos que corren en el contenedor
 +<sxh>docker exec micontenedor ps </sxh>
 +
 +=== BACKGROUND ===
 +Con la opción **-d** Nos permite ejecutar un contenedor en segundo plano y poder correr comandos sobre el mismo en cualquier momento mientras esté en ejecución. Se dice que es un contenedor demonizado y se ejecutará indefinidamente
 +
 +por ejemplo 
 +<sxh>docker run -d --name tomcat:v8 miimagentomcat</sxh>
  
 === logs === === logs ===
Línea 120: Línea 157:
  
  
-==== Gestión de volúmenes ==== 
- 
-=== 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.  
- 
- 
-borrar todos los volúmenes  
-<sxh>docker volume rm $(docker volume ls -q)</sxh>