Envío de una imagen
Introducción
SWR proporciona una gestión fácil, segura y confiable de las imágenes de contenedores a lo largo de sus ciclos de vida, lo que facilita la despliegue de aplicaciones en contenedores. Esta sección utiliza la aplicación 2048 como ejemplo para mostrar cómo instalar un motor de contenedor, crear una imagen y utilizar el motor de contenedor para enviar la imagen a SWR.
- Hay dos formas de enviar una imagen a SWR: uso de un cliente de motor de contenedor o en la consola de SWR. Esta sección utiliza un cliente de motor de contenedor como ejemplo. Para obtener más información sobre cómo cargar una imagen en la consola, consulte Carga de una imagen a través de la consola de SWR.
- Actualmente, no hay API de SWR disponibles para enviar imágenes.
A continuación se muestra el proceso de envío de una imagen a SWR.
Requisitos previos
Ya tiene una cuenta de Huawei Cloud.
Si no tiene una cuenta de Huawei Cloud, realice los siguientes pasos para crear una:
- Visite Huawei Cloud y haga clic en Regístrese.
- Cree una cuenta según se le solicite. Una vez que se haya registrado correctamente, el sistema lo redirigirá automáticamente a la página de información personal.
Paso 1: Instalar un motor de contenedores
Prepare un ECS donde se instalará Docker 1.11.2 o versión posterior.
- Cree un ECS de Linux con una EIP. Para obtener más información, consulte Compra e inicio de sesión en un ECS de Linux.
El ECS y la EIP son solo para demostración, por lo que no requieren especificaciones altas. Por ejemplo, seleccione un ECS con 1 vCPU y 2 GiB de memoria, una EIP con un ancho de banda de 1 Mbit/s y un sistema operativo de CentOS 7.5.
- También puede instalar un motor de contenedores en otro servidor en lugar de un ECS.
- Si utiliza CentOS, se recomienda elegir CentOS 7.0, CentOS 7.2, CentOS 7.3, CentOS 7.4, CentOS 7.5 o CentOS 7.6 para evitar excepciones durante la instalación.
- Una vez creado el ECS, vuelva a la lista de ECS y haga clic en Remote Login para iniciar sesión en el ECS como usuario root.
- Ejecute los siguientes comandos para instalar Docker rápidamente:
curl -fsSL get.docker.com -o get-docker.sh sh get-docker.sh sudo systemctl daemon-reload sudo systemctl restart docker
Paso 2: Crear una imagen
- Ejecute el siguiente comando en el ECS donde está instalado Docker para descargar el código fuente de la aplicación 2048:
git clone https://gitee.com/jorgensen/2048.git
Si aparece el mensaje "git: command not found", significa que la herramienta Git no está instalada. Ejecute yum install git para instalarla.
- Una vez que la descarga se haya realizado correctamente, acceda al directorio 2048.
cd 2048
- Modifique el archivo Dockerfile.
vim Dockerfile
FROM nginx COPY . /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
- FROM: especifica nginx como la imagen base.
- COPY: copia el código fuente de la aplicación 2048 en el directorio /usr/share/nginx/html del contenedor.
- EXPOSE: expone el puerto 80 del contenedor.
- CMD: especifica el comando predeterminado para ejecutar el contenedor.
Presione Esc e ingrese :wq para guardar la configuración y salir.
- Ejecute docker build para crear una imagen.
docker build -t 2048 .
En el comando anterior:
- -t se utiliza para etiquetar la imagen con un nombre. En este ejemplo, el nombre de la imagen es 2048.
- . indica el directorio de contexto. Todos los archivos de este directorio se empaquetarán y se enviarán al motor de contenedores para ayudar a crear una imagen.
- Ejecute el siguiente comando para verificar la imagen 2048 que ha creado. La etiqueta de la imagen es latest de forma predeterminada.
docker images
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE 2048 latest 8d421c503ed0 About a minute ago 134MB nginx latest dd34e67e3371 6 days ago 133MB
También puede ver una imagen nginx, que se extrae del repositorio de imágenes y se utiliza como imagen base de la imagen 2048.
- (Opcional) Ejecute la imagen del contenedor.
Después de crear una imagen, puede ejecutar docker run para utilizarla.
docker run -p 8080:80 2048
docker run inicia un contenedor. En el comando anterior, -p indica que el puerto 8080 del ECS se asigna al puerto 80 del contenedor. Puede visitar http://ECS' EIP:8080 para acceder al contenedor. Se mostrará la página de aplicación 2048.
Paso 3: Crear una organización
Una organización se utiliza para aislar imágenes y otorgar permisos de acceso (lectura, edición y gestión) a diferentes usuarios de IAM bajo una cuenta.
- Inicie sesión en la consola de SWR.
- En el panel de navegación, elija Organizations. Haga clic en Create Organization en la esquina superior derecha.
- Ingrese un nombre de organización y haga clic en OK. Figura 2 Creación de una organización
Paso 4: Conectarse a SWR
- Inicie sesión en la consola de SWR.
- En el panel de navegación, elija Dashboard. Haga clic en Generate Login Command en la esquina superior derecha. A continuación, haga clic en
para copiar el comando de inicio de sesión. Figura 3 Generación de un comando de inicio de sesión
El comando de inicio de sesión solo es válido durante 6 horas después de su generación. Para obtener un comando de inicio de sesión a largo plazo, consulte Obtención de un comando de inicio de sesión a largo plazo.
- Ejecute el comando de inicio de sesión en el ECS donde está instalado el motor de contenedor.
El mensaje Login Succeeded se mostrará después de un inicio de sesión exitoso.
Paso 5: Enviar la imagen
- En el ECS donde está instalado el motor de contenedor, ejecute el siguiente comando para etiquetar la imagen 2048:
docker tag[Image name 1:tag 1] [Image registry address]/[Organization name]/[Image name 2:tag 2]
En el comando anterior:
- [Image name 1:tag 1]: nombre y etiqueta de la imagen.
- [Image registry address]: El nombre de dominio al final del comando de inicio de sesión en Paso 4: Conectarse a SWR es la dirección del registro de imágenes.
- [Organization name]: nombre de la organización creada en Paso 3: Crear una organización.
- [Image name 2:tag 2]: nuevo nombre y etiqueta de la imagen.
Ejemplo:
docker tag 2048:latest swr.ap-southeast-1.myhuaweicloud.com/cloud-develop/2048:v1
- Envíe la imagen al repositorio de SWR.
docker push [Image registry address]/[Organization name]/[Image name 2:tag 2]
Ejemplo:
docker push swr.ap-southeast-1.myhuaweicloud.com/cloud-develop/2048:v1
La siguiente información se devolverá cuando se realice un push con éxito:
The push refers to repository [swr.ap-southeast-1.myhuaweicloud.com/cloud-develop/2048] fbce26647e70: Pushed fb04ab8effa8: Pushed 8f736d52032f: Pushed 009f1d338b57: Pushed 678bbd796838: Pushed d1279c519351: Pushed f68ef921efae: Pushed v1: digest: sha256:0cdfc7910db531bfa7726de4c19ec556bc9190aad9bd3de93787e8bce3385f8d size: 1780
Para ver la imagen enviada, acceda a la consola de SWR y actualice la página My Images.
- Utilice la imagen enviada para desplegar una carga de trabajo en CCE.