Hands on: Comandos básicos

Hello world

# 1.1. Veamos todos los comandos
$ docker

# 1.2. Descarguemos una imagen
$ docker pull hello-world

# 1.3. Listemos nuestras imágenes
$ docker images

# 1.4. Ejecutemos nuestro primer container
$ docker run hello-world

# 1.5. Listemos los containers en ejecución
$ docker ps -a

¡Felicitaciones! Ejecutaste tu primer container. Ahora... ¿qué fue lo que pasó? ¿Podés decir paso a paso que fue lo que hicimos?

Estos comandos iniciales son los que tal vez más vayas a usar e ilustran el ciclo de vida de un container básico. Vamos a hacer una lista y explicar que para que sirve cada uno de estos comandos.

  • docker: Siempre que tengas alguna duda sobre los subcomandos disponibles, ejecutando "docker" sin parámetros vas a obtener una lista de todas las opciones que están disponibles para tu versión de Docker, así como una breve descripción de las mismas.
  • docker pull <nombre-del-programa>: Aquí estamos haciendo uso del Docker hub. Con este comando estamos descargando la imagen de un container determinado a nuestro repositorio local.
  • docker images: Usando docker images Podemos ver todas las imágenes disponibles en nuestro sistema.
  • docker run <nombre-del-programa>: Ejecutamos una imagen e instanciamos un container usando el comando docker run. Dependiendo del container, podrán pasar diferentes configuraciones. Algo que veremos más adelante.
  • docker ps -a: Así como en GNU/Linux listamos todos los procesos del sistema con el comando ps -a, en Docker podemos listar todos los containers con docker ps -a.

Whalesay

# 2.1. Ahora probemos un programa más divertido
$ docker run docker/whalesay cowsay "Hola Edrans!"

# 2.2. Extendamos este programa
$ mkdir mydockerbuild && cd mydockerbuild/
$ vim Dockerfile

¿Por qué no hicimos un docker pull <nombre-del-programa> primero? ¿ya teníamos este programa?

No, no teníamos este programa en nuestro repositorio local. Esto es una propiedad de docker run: si no encuentra la imagen en el repositorio local va a buscar la imagen en Docker hub, la descarga, y luego la instancia. Según la disponibilidad de Internet y de requerimentos de eficiencia va a ser más fácil contar con las imágenes en el repositorio local, pero en la mayoría de los casos solo van a usar docker run.

En este ejemplo estamos usando el editor de texto vim, pero vos podés usar el que quieras (en Play with Docker solamente tenés vim/vi, en tu compu seguramente tengas otros editores).

Creamos el archivo Dockerfile con el siguiente contenido:

FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay

Cerramos y guardamos el archivo, y a continuación:

# 2.3. Creamos nuestra imagen 
$ docker build -t docker-whale .

# 2.4. Comprobamos que nuestra imagen está lista para usar
$ docker images

# 2.5. Ejecutemos un container con esa imagen
$ docker run docker-whale

¿Qué fue lo que pasó ahora? ¿qué ves en tu consola?

#TODO. Explicación creación de imágenes

Vamos a subir nuestra imagen a nuestro repositorio en Docker hub.

# 2.6. Creamos una etiqueta para nuestra imagen <docker-hub-user>/<nombre-del-programa>
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker-whale        latest              1704e64ef77c        3 minutes ago       277MB

$ docker tag 1704e64ef77c vkmc/docker-whale:latest

$ docker images

REPOSITORY                      TAG       IMAGE ID        CREATED          SIZE
vkmc/docker-whale   latest    7d9495d03763    5 minutes ago    273.7 MB

# 2.7. Accedemos a nuestra cuenta
$ docker login

# 2.8. Subimos nuestra imagen al repositorio (!)
$ docker push vkmc/docker-whale

results matching ""

    No results matching ""