Comandos Básicos en Docker¶
Comandos Básicos.¶
Crear y arrancar un contenedor.¶
docker [ run | start | stop | restart ] [OPCIONES] [contenedor]
-
Primero busca la imagen “hello-world” en local (tu ordenador), al no encontrarlo, lo descarga de un repositorio de docker (dockerhub).
-
Si se ejecuta una segunda vez ya encontrará la imagen en local ya se ejecutará directamente. La imagen se guarda en (/var/lib/docker/).
-
La etiqueta “hello-world:latest”, quiere decir que se está descargando la última versión de la imagen hello-world.
La opción -d permite lanzar el contenedor en segundo plano y que quede funcionando. Sin dicha opción se crea el contenedor pero se detiene.
Muestra los contenedores del sistema¶
docker ps [opciones]
✨ Con –a se muestran todos los contenedores, los activos y los detenidos.
✨ Una vez sabemos su “nombre” o su “ID” podemos arrancarlo/pararlo/reiniciarlo.
Renombrar un contenedor¶
docker rename [Nombre Antiguo] [Nombre Nuevo]
Copiar un fichero/carpeta del contenedor a la máquina anfitriona¶
docker cp [Fichero Origen] [Ruta Destino]
Ejecutar comandos dentro del contenedor¶
docker exec [OPCIONES] NombreContenedor Comando [ArgumentosComando]
✨ -it: Enlaza la entrada y salida a nuestro terminal.
✨ En el siguiente ejemplo se ejecuta el comando "bash" lo que nos permite acceder a la consola del contenedor Salva.
Elimina un contenedor.¶
docker rm NombreContenedor
Crear una imagen a partir de un contenedor¶
docker commit contenedor imagen
✨Crear una imagen de un contenedor es la forma más sencilla para subir nuestro contenedor a la nube o para hacer un backup local.
Acceder a los logs de ejecución del contenedor.¶
docker logs [OPCIONES] NombreContenedor
Ejemplos Básicos en Docker¶
En los siguientes ejemplos el nombre del contenedor será Salva.
- Crear un contenedor nuevo con la última versión de Ubuntu.
docker run -d --name Salva ubuntu
- Acceder al contenedor haciendo uso del intérprete /bin/bash.
docker exec -it Salva bash
- Actualiza los repositorios e instala dentro del contendor.
apt-get update
apt-get install nano iputils-ping net-tools iproute2
- Detiene el contenedor desde la máquina anfitriona.
docker stop Salva
- Arranca el contenedor.
docker start Salva
- Descargar un fichero del contenedor a la máquina anfitriona.
docker cp Salva:/home/prueba.txt .
- Crear una imagen del contendor llamada copiaContenedor.
docker commit Salva copiaContendor
- Lista las imagenes que tienes en el sistema
docker images
- Crea un .tar de la imagen copiaContendor.
docker image save -o /home/usuario/backup.tar copiaContendor
- Saca la imagen del .tar y vuélcala en un contenedor. Recuerda estar en el mismo directorio que el .tar.
docker load -i backup.tar
docker run -d -it --name NuevoContenedor copiaContendor
¿Cómo trabajar en clase/casa usando docker?¶
Muchos de vosotros hacéis uso de Windows en casa, por lo que os puede entrar dudas de cómo podemos llevar nuestro trabajo a casa para seguir con él.
Opción 1: Pasar el contendor a una memoria externa.¶
Opción 2: Pasar el contenedor a un repositorio privado de DockerHUB.¶
Primero debemos crearnos un usuario y un repositorio privado en la plataforma "Docker_hub".
# Nos registramos desde el terminal en docker hub.
docker login UsuarioDockerHUB
# Creamos la imagen ya asociada al repositorio de nuestro usuario.
docker commit NombreContenedor UsuarioDockerHUB/repositorio:nombre_imagen
# Subimos el contenedor a docker hub.
docker push UsuarioDockerHUB/repositorio:nombre_imagen
Si quisieramos descargarnos una imagen de nuestro repositorio: docker pull UsuarioDockerHUB/repositorio:nombre_imagen
Resumen¶
| Argumentos | |
|---|---|
| docker run -d --name NombreContenedor NombreImagen | Crea y arranca un contenedor --> Si lo ejecutas varias veces ejecutas varios contenedores. |
| docker start / stop / restart NombreContenedor | Arranca/Detiene/Reinicia un contenedor ya existente. |
| docker exec -it NombreContenedor bash | Accedes a un terminal bash dentro del contenedor. |
| docker ps -a | Ves todas los contenedores del sistema. |
| docker cp NombreContenedor:/home/prueba.txt . | Copia del contendor a la máquina anfitriona. |
| docker commit NombreContenedor NombreImagen | Crea una imagen de un contenedor. |
| docker images | Muestra las imágenes de contenedores del sistema. |