BugSlayer-Henrry-Introducción-a-Contenedores-Docker-y-IBM-Cloud-Container-Registry
Introducción a Contenedores, Docker y IBM Cloud Container Registry
Objetivos
En este laboratorio, usted:
Extraerá una imagen de Docker Hub
Ejecutará una imagen como un contenedor usando docker
Construirá una imagen usando un Dockerfile
Subirá una imagen al IBM Cloud Container Registry
Verificar el entorno y las herramientas de lÃnea de comandos
Abre una ventana de terminal utilizando el menú en el editor: Terminal > New Terminal
.
Nota: Si la terminal ya está abierta, por favor omite este paso.
Verifica que Docker CLI esté instalado
docker --version
DeberÃas ver la siguiente salida, aunque la versión puede ser diferente:
Verifica que IBM Cloud CLI esté instalado
ibmcloud version
DeberÃas ver la siguiente salida, aunque la versión puede ser diferente:
Cambia a la carpeta de tu proyecto
Nota: Si ya estás en la carpeta /home/project
, por favor omite este paso.
cd /home/project
Clona el repositorio de Git que contiene los artefactos necesarios para este laboratorio, si no existe ya:
[ ! -d 'CC201' ] && git clone https://github.com/ibm-developer-skills-network/CC201.git
Cambia al directorio de este laboratorio:
cd CC201/labs/1_ContainersAndDocker/
Enumera el contenido del directorio:
ls
Extraer una imagen de Docker Hub y ejecutarla como un contenedor
Lista tus imágenes:
docker images
DeberÃas ver una tabla vacÃa:
Descarga la imagen hello-world
de Docker Hub:
docker pull hello-world
Lista las imágenes nuevamente:
docker images
Ejecuta la imagen como un contenedor:
docker run hello-world
Lista los contenedores:
docker ps -a
Elimina el contenedor (reemplaza <container_id>
con el ID obtenido anteriormente):
docker container rm <container_id>
Verifica la eliminación:
docker ps -a
Construir una imagen usando un Dockerfile
El directorio contiene una aplicación de Node.js. Los archivos necesarios son:
app.js
(aplicación principal)package.json
(dependencias)Dockerfile
(instrucciones para construir la imagen)
Construye la imagen:
docker build . -t myimage:v1
Lista las imágenes para verificar:
docker images
Ejecuta la imagen como un contenedor:
docker run -dp 8080:8080 myimage:v1
Prueba la aplicación:
curl localhost:8080
Detén el contenedor:
docker stop $(docker ps -q)
Verifica que se haya detenido:
docker ps
Subir la imagen al IBM Cloud Container Registry
Verifica la cuenta de IBM Cloud:
ibmcloud target
Verifica los espacios de nombres en IBM Cloud Container Registry:
ibmcloud cr namespaces
DeberÃas ver dos espacios de nombres listados que comienzan con
sn-labs
:
El primero, con tu nombre de usuario, es un espacio de nombres solo para ti. Tienes acceso completo de lectura y escritura a este espacio de nombres. El segundo espacio de nombres, que es un espacio de nombres compartido, solo te proporciona acceso de lectura.
Asegúrate de que estás apuntando a la región adecuada para tu cuenta en la nube, por ejemplo, la región us-south
donde residen estos espacios de nombres, como viste en la salida del comando ibmcloud target
.
ibmcloud cr region-set us-south
Inicia sesión en el daemon de Docker local en IBM Cloud Container Registry para que puedas subir y bajar imágenes del registro.
ibmcloud cr login
Exporta tu espacio de nombres como una variable de entorno para que pueda ser utilizada en comandos posteriores.
export MY_NAMESPACE=sn-labs-$USERNAME
Etiqueta tu imagen para que pueda ser enviada al Registro de Contenedores de IBM Cloud.
docker tag myimage:v1 us.icr.io/$MY_NAMESPACE/hello-world:1
EnvÃa la imagen recién etiquetada al Registro de Contenedores de IBM Cloud.
docker push us.icr.io/$MY_NAMESPACE/hello-world:1
Nota: Si has intentado este laboratorio anteriormente, es posible que la sesión anterior aún esté persistente. En tal caso, verás un mensaje de La capa ya existe
en lugar del mensaje de Subido
en la salida anterior. Te recomendamos que continúes con los siguientes pasos del laboratorio.
Verifica que la imagen se haya subido correctamente listando las imágenes en el Registro de Contenedores.
ibmcloud cr images
Opcionalmente, para ver solo imágenes dentro de un espacio de nombres especÃfico:
ibmcloud cr images --restrict $MY_NAMESPACE
DeberÃas ver el nombre de tu imagen en la salida.
¡Felicidades! Has completado el segundo laboratorio del primer módulo de este curso.
© IBM Corporation. Todos los derechos reservados.
Last updated