Cómo Crear Y Enviar Imágenes De Docker A AWS ECR

Docker es una plataforma que lo ayuda a crear, ejecutar y enviar aplicaciones sin problemas y sin errores.

Es probable que se haya encontrado con un escenario en el que el código se ejecuta en su máquina, pero de alguna manera genera errores en la máquina de otra persona.

Bueno, Docker fue creado para resolver este mismo problema.

imagen-166

fuente de la imagen: internet

En este artículo, cubriremos cuatro conceptos principales:

  1. Cómo configurar, instalar y configurar Docker
  2. Cómo agregar Docker a su proyecto
  3. Cómo instalar y configurar AWS CLI en su sistema
  4. Cómo utilizar AWS ECR para alojar una imagen de Docker en una ubicación remota

requisitos previos

Esto es lo que deberá seguir junto con este tutorial:

  1. Una cuenta Docker
  2. Conocimientos básicos de Docker: caso de uso, comandos
  3. cuenta AWS
  4. Conocimientos básicos de AWS: consola, IAM, usuarios, ECS, ECR
  5. Una aplicación web simple que podemos usar para este proyecto.

Si no tiene una aplicación web o simplemente quiere probarla, puede clonar este proyecto:

GitHub - joshi-kaushal/solo para miembros

 

La aplicación anterior es una aplicación Express.js con MongoDB Compass como base de datos. Crearemos una imagen de Docker del proyecto, la enviaremos a AWS ECS y accederemos a ella a través de AWS ECR.

imagen-183

Configuración de la ventana acoplable

Lo único que debe hacer si usa Windows o Mac es instalar la aplicación de escritorio Docker. Instala todo lo que necesita y ofrece una interfaz gráfica de usuario agradable para la interacción.

Vaya al sitio web oficial e instale la configuración. También debe crear una cuenta de Docker para su uso posterior. Si está en Linux, esta página o una simple búsqueda en YouTube lo ayudarán a hacerlo.

Para verificar si la instalación es exitosa, ejecute docker --versionen la terminal. Debería mostrar la versión y compilación instalada en su sistema.

imagen-151

Comprobando si la instalación de Docker es exitosa

Inicio de sesión de Docker

Vaya a hub.docker.com/signup y cree su cuenta. Para conectar su sistema con su cuenta de Docker, ejecute docker loginen la terminal.

Verá que se le solicita Inicio de sesión exitoso en la terminal.

imagen-149

Comprobando si el inicio de sesión de Docker es exitoso

Una vez que Docker esté instalado y configurado en su sistema, pasemos a la siguiente sección.

Cómo dockerizar su proyecto

Por Dockerize , me refiero a configurar su proyecto existente con Docker y colocarlo en contenedores.

Cree un archivo llamado Dockerfilesin ninguna extensión en la raíz del directorio de su proyecto. Contiene el código necesario para crear una imagen de Docker y ejecutar la aplicación dockerizada como contenedor.

Si está utilizando VS Code, la extensión Docker será útil.

Cómo configurar el Dockerfile

Como configuración mínima, pegue el siguiente código en el archivo Dockerfile.

FROM node:12.17.0

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

ENV PORT=3000

EXPOSE 3000

CMD [ "npm", "start" ]

Antes de comprender estas instrucciones, cree un .dockerignorearchivo y agréguelo node_modules. Funciona igual que .gitignore.

Ahora veamos ese código:

  • FROM: Establece la imagen base para obtener más instrucciones. En aras de la simplicidad, utilizaremos una imagen de Node.js con soporte oficial. Estoy usando la versión exacta mencionada en mi package.json, así que cámbiela en consecuencia si está usando una versión de nodo diferente.
  • WORKDIR: Agrega el código fuente de nuestro directorio de trabajo actual a la imagen.
  • COPY: copie archivos y carpetas desde el origen hasta el destino en el sistema de archivos de imágenes. Estamos copiando package.jsony package-lock.json. Este comando asegura que tenemos una lista de dependencias para instalar en nuestro contenedor docker.
  • RUN: Ejecuta el comando dado. Como hemos hecho package.jsonen el paso anterior, podemos instalar dependencias en nuestro contenedor.
  • COPY: Ahora, estamos copiando todo, desde el directorio del proyecto a nuestro contenedor. Dado que ambos están en el mismo directorio, estamos usando .which indica el directorio de trabajo actual. node_modulesno se copia ya que lo hemos agregado en .dokcerignore.
  • ENV: establece una variable de entorno para el contenedor acoplable.
  • EXPOSES: cuando estamos ejecutando este contenedor, queremos escuchar nuestra aplicación en un puerto en particular. EXPOSESnos permite acceder a la aplicación en contenedores de forma pública. No necesita ser lo mismo que ENV, pero reduce la complejidad :)
  • CMD: Solo puede haber un CMDcomando en una imagen, que le indica al contenedor cómo iniciar la aplicación. Observe que hemos pasado como matriz y el comando necesario como elementos. Esto se llama como formulario ejecutivo y nos permite ejecutar el comando sin iniciar una sesión de shell.

Hemos configurado todo lo que necesitamos para crear un archivo Docker. ¡Creemos una imagen de Docker ahora!

Cómo crear una imagen acoplable

Utiliza el docker buildcomando para crear una compilación de la imagen de Docker. Hay un montón de parámetros que podemos pasar con el comando. Pero uno que vamos a usar aquí es -t. Esto le da a su imagen una etiqueta de nombre que hace que sea fácil de recordar y de acceder.

No existe una forma estandarizada de nombrar su imagen, pero normalmente verá esto: el nombre de usuario de Docker seguido de una barra inclinada ( /) y luego el número de versión separado por dos puntos ( :).

docker build -t <name-tag> .

La etiqueta de nombre debe ser así: clumsycoder/myapp:1.0.0

El segundo argumento es la ubicación del Dockerfile. Como los nuestros están en el mismo directorio, podemos poner un punto (.).

Cuando ejecute el comando, verá que los pasos se ejecutan en el mismo orden en que están escritos en el archivo Dockerfile. Una vez hecho esto, aparecerá <baseID> construido con éxito en la terminal.

Puede usar baseIDpara acceder a la imagen particular de Docker en lugar de usar su etiqueta de nombre.

Puede verificar esto mirando la sección Imágenes en la aplicación Docker. También puede ver el contenedor local en la Containers/ Appssección.

Por el momento, ejecutemos nuestra imagen de Docker en nuestro sistema local.

docker run -p 3000:3000 <name-tag>

Recuerde, también puede usar <baseID>en lugar de <name-tag>.

Reenvío de puertos

Si ejecuta el comando anterior sin -p 3000:3000, no verá nada en el puerto 3000. Esto se debe a que incluso si hemos expuesto el puerto 3000 en Dockerfile, si no lo hemos hecho accesible al mundo exterior,

La -pbandera nos permite hacer el reenvío de puertos desde el contenedor a nuestra máquina local.

El reenvío de puertos es en realidad un gran concepto, pero esto es todo lo que necesitamos saber por ahora.

Visita http://localhost:3000/en tu navegador. Bueno, ha creado un contenedor Docker y lo está ejecutando en su máquina local. ¡Prestigio!

Por lo general, envía esta imagen a algún tipo de registro de contenedor para usarla en escenarios del mundo real. Podría ser un Docker Hub o cualquier otra cosa. Estamos utilizando Amazon Elastic Container Service proporcionado por AWS.

Para una comunicación fluida entre la imagen local de Docker y ECS, debemos configurar AWS CLI en nuestro sistema. Veamos cómo hacerlo.

Cómo configurar la CLI de AWS

AWS Command Line Interface es una herramienta de línea de comandos que nos permite utilizar los recursos de AWS a través de nuestra terminal. Cualquier cosa que podamos hacer en la consola de AWS o en la GUI web también se puede hacer con la CLI.

Tenemos que instalar y configurar AWS CLI en nuestro sistema para usar los servicios de ECS localmente. Para verificar si ya tiene instalado AWS CLI, ejecute este comando en la terminal:

aws cli

Si el comando no responde con nada, la CLI no está configurada. Si es así, siéntase libre de pasar a la siguiente sección.

Cómo instalar la CLI de AWS

Estoy usando Windows 10 con WSL2. Pero el procedimiento es similar para Mac OS y Linux Debian.

Ingresa a este sitio web y sigue los pasos para tu distribución. Para Windows, debe descargar un MSI. Luego aparecerá un mensaje de instalación. Simplemente siga y se instalará en unos minutos.

Ahora reinicie la terminal y ejecute de aws clinuevo. Configuremos un usuario para este perfil local.

Cómo configurar un usuario local para AWS CLI

Vaya a la sección IAM de la consola de AWS en la web. Siga este GIF para crear un nuevo usuario:

ecs-nuevo-usuario

crear un usuario con los derechos apropiados

Recordar:

  1. Clave de acceso: el acceso programático se verifica cuando ingresa el nombre del nuevo usuario.
  2. Agregue una política de usuario que brinde acceso completo a ECS. El nombre de la póliza es AmazonECS_FullAccess.
  3. Anote access key IDy Secret access key, ya que tendremos que usarlos más adelante.

Volvamos a nuestra buena terminal. Ejecute el comando de configuración en la terminal e ingrese su clave de acceso, clave de acceso secreta y región preferida. Sáltate el default output formatpor ahora.

aws configure

Verifique la configuración ejecutando el aws configure listcomando.

imagen-152

Verificación de la configuración de la CLI de AWS

¡Felicidades! Hemos configurado con éxito AWS CLI con nuestro terminal local. Ahora es el momento de enviar nuestra imagen de Docker a Amazon ECS.

Servicios de contenedores elásticos de AWS

Ha pasado tanto tiempo desde que hablamos de Docker. Hemos creado una imagen y un contenedor local de Docker. Tenemos que publicarlo desde nuestro repositorio local de Docker en AWS ECR.

¿Qué es ECS? Podrías preguntar.

Amazon Elastic Container Services, también conocido como ECS, es un servicio de orquestación de contenedores completamente administrado que facilita la implementación, administración y escalado de aplicaciones en contenedores.

Y Elastic Container Registry o ECR es el registro de contenedores Docker almacenados en ECS. Usaremos ECS para enviar nuestro contenedor Docker a ECR.

Cómo crear un repositorio en ECR

Para simplificar, sugiero mantener el mismo nombre que su proyecto.

aws ecr create-repository --repository-name <repo_name> --region <region_name>

Si no está seguro region_name, ponga us-east-1. Esto crearía su repositorio en la región US EAST-1. Una vez terminado, solicitará un objeto JSON como respuesta en la terminal.

imagen-153

Para un lado más seguro, consulte la consola de AWS y vea si se crea un repositorio:

aws-ecr-repo

verificar si se crea un repositorio

Recordar:

  1. No verá ninguna imagen en el repositorio. Porque no hemos empujado ninguna imagen todavía.
  2. Anote URIsu repositorio. Tendremos que usarlo pronto.

Cómo enviar una imagen Docker a ECR

Cada pieza ha sido creada individualmente hasta ahora. Es el momento de unir todas y cada una de las piezas y completar el puzzle.

Para que Docker envíe la imagen a ECR, primero debemos autenticar nuestras credenciales de Docker con AWS. Usamos el get-login-passwordcomando que recupera y muestra un token de autenticación usando la API GetAuthorizationToken que podemos usar para autenticarnos en un registro de Amazon ECR.

aws ecr get-login-password --region <region_name>

Use el mismo region_nameque usó al crear un repositorio. Guarde el token cifrado en algún lugar por un momento.

Tome una respiración profunda ahora. Necesitamos dos cosas que te dije para guardar en alguna parte. El primero es el token que acabo de mencionar y el segundo es el URI del repositorio del paso anterior.

¿Lo entendiste? Menosgooo!

 aws ecr --region <region> | docker login -u AWS -p <encrypted_token> <repo_uri>

No hace falta decir que coloque la misma región donde existe su repositorio.

Estamos consultando la API de ECR proporcionada por AWS CLI. Más tarde estamos canalizando el inicio de sesión de Docker.

  • -u AWS: Usuario predeterminado proporcionado por AWS.
  • -p <encrypted_token>: Contraseña que recuperamos en el último paso.
  • repo_uri: URI de nuestro repositorio.

Si el inicio de sesión es exitoso, se mostrará Login Succeeded en la terminal.

Cómo etiquetar una imagen de Docker local

Este comando etiqueta una imagen de Docker local con el ECR Repo.

docker tag <source_image_tag> <target_ecr_repo_uri>
  • source_image_tag: El nombre que le dio al docker buildcomando. Si lo sigues, es username/image_name:tag.
  • target_ecr_repo_uri: URI del repositorio de ECR.

Cómo enviar la imagen de Docker a ECR

El paso final: ¡la última pieza del rompecabezas!

El siguiente comando envía el archivo Docker local al repositorio de ECR remoto. Dependiendo del tamaño de la imagen, llevará algún tiempo terminar.

docker push <ecr-repo-uri>

¡Viva! Lo hemos logrado 🎉

imagen-182

Puede ver la imagen cargada en la consola de AWS. Vaya a ECR, haga clic en repositorios y abra el repositorio de ECR que cargamos hace unos minutos. Cópialo Image URIsi quieres usarlo más.

Terminando

En este artículo, cubrimos cómo implementar una imagen de Docker en AWS ECS. Puede usar este contenedor Docker que se encuentra dentro de ECR para alojar su aplicación en el servidor. Podría ser AWS EC2 o cualquier otra cosa.

Docker y AWS se utilizan ampliamente para desarrollar aplicaciones a gran escala. Tener una idea de cómo funcionan estas cosas juntas debería ayudarlo a crear aplicaciones a gran escala en el futuro.

Dicho esto, espero que este artículo te haya ayudado en tu trabajo, estudios o aprendizajes. Si lo hizo, también puede encontrar útiles mis otros artículos.

¡Feliz envío! 🐳🚢

Fuente: https://www.freecodecamp.org/news/build-and-push-docker-images-to-aws-ecr/

#aws #docker 

What is GEEK

Buddha Community

Cómo Crear Y Enviar Imágenes De Docker A AWS ECR

Cómo Crear Y Enviar Imágenes De Docker A AWS ECR

Docker es una plataforma que lo ayuda a crear, ejecutar y enviar aplicaciones sin problemas y sin errores.

Es probable que se haya encontrado con un escenario en el que el código se ejecuta en su máquina, pero de alguna manera genera errores en la máquina de otra persona.

Bueno, Docker fue creado para resolver este mismo problema.

imagen-166

fuente de la imagen: internet

En este artículo, cubriremos cuatro conceptos principales:

  1. Cómo configurar, instalar y configurar Docker
  2. Cómo agregar Docker a su proyecto
  3. Cómo instalar y configurar AWS CLI en su sistema
  4. Cómo utilizar AWS ECR para alojar una imagen de Docker en una ubicación remota

requisitos previos

Esto es lo que deberá seguir junto con este tutorial:

  1. Una cuenta Docker
  2. Conocimientos básicos de Docker: caso de uso, comandos
  3. cuenta AWS
  4. Conocimientos básicos de AWS: consola, IAM, usuarios, ECS, ECR
  5. Una aplicación web simple que podemos usar para este proyecto.

Si no tiene una aplicación web o simplemente quiere probarla, puede clonar este proyecto:

GitHub - joshi-kaushal/solo para miembros

 

La aplicación anterior es una aplicación Express.js con MongoDB Compass como base de datos. Crearemos una imagen de Docker del proyecto, la enviaremos a AWS ECS y accederemos a ella a través de AWS ECR.

imagen-183

Configuración de la ventana acoplable

Lo único que debe hacer si usa Windows o Mac es instalar la aplicación de escritorio Docker. Instala todo lo que necesita y ofrece una interfaz gráfica de usuario agradable para la interacción.

Vaya al sitio web oficial e instale la configuración. También debe crear una cuenta de Docker para su uso posterior. Si está en Linux, esta página o una simple búsqueda en YouTube lo ayudarán a hacerlo.

Para verificar si la instalación es exitosa, ejecute docker --versionen la terminal. Debería mostrar la versión y compilación instalada en su sistema.

imagen-151

Comprobando si la instalación de Docker es exitosa

Inicio de sesión de Docker

Vaya a hub.docker.com/signup y cree su cuenta. Para conectar su sistema con su cuenta de Docker, ejecute docker loginen la terminal.

Verá que se le solicita Inicio de sesión exitoso en la terminal.

imagen-149

Comprobando si el inicio de sesión de Docker es exitoso

Una vez que Docker esté instalado y configurado en su sistema, pasemos a la siguiente sección.

Cómo dockerizar su proyecto

Por Dockerize , me refiero a configurar su proyecto existente con Docker y colocarlo en contenedores.

Cree un archivo llamado Dockerfilesin ninguna extensión en la raíz del directorio de su proyecto. Contiene el código necesario para crear una imagen de Docker y ejecutar la aplicación dockerizada como contenedor.

Si está utilizando VS Code, la extensión Docker será útil.

Cómo configurar el Dockerfile

Como configuración mínima, pegue el siguiente código en el archivo Dockerfile.

FROM node:12.17.0

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

ENV PORT=3000

EXPOSE 3000

CMD [ "npm", "start" ]

Antes de comprender estas instrucciones, cree un .dockerignorearchivo y agréguelo node_modules. Funciona igual que .gitignore.

Ahora veamos ese código:

  • FROM: Establece la imagen base para obtener más instrucciones. En aras de la simplicidad, utilizaremos una imagen de Node.js con soporte oficial. Estoy usando la versión exacta mencionada en mi package.json, así que cámbiela en consecuencia si está usando una versión de nodo diferente.
  • WORKDIR: Agrega el código fuente de nuestro directorio de trabajo actual a la imagen.
  • COPY: copie archivos y carpetas desde el origen hasta el destino en el sistema de archivos de imágenes. Estamos copiando package.jsony package-lock.json. Este comando asegura que tenemos una lista de dependencias para instalar en nuestro contenedor docker.
  • RUN: Ejecuta el comando dado. Como hemos hecho package.jsonen el paso anterior, podemos instalar dependencias en nuestro contenedor.
  • COPY: Ahora, estamos copiando todo, desde el directorio del proyecto a nuestro contenedor. Dado que ambos están en el mismo directorio, estamos usando .which indica el directorio de trabajo actual. node_modulesno se copia ya que lo hemos agregado en .dokcerignore.
  • ENV: establece una variable de entorno para el contenedor acoplable.
  • EXPOSES: cuando estamos ejecutando este contenedor, queremos escuchar nuestra aplicación en un puerto en particular. EXPOSESnos permite acceder a la aplicación en contenedores de forma pública. No necesita ser lo mismo que ENV, pero reduce la complejidad :)
  • CMD: Solo puede haber un CMDcomando en una imagen, que le indica al contenedor cómo iniciar la aplicación. Observe que hemos pasado como matriz y el comando necesario como elementos. Esto se llama como formulario ejecutivo y nos permite ejecutar el comando sin iniciar una sesión de shell.

Hemos configurado todo lo que necesitamos para crear un archivo Docker. ¡Creemos una imagen de Docker ahora!

Cómo crear una imagen acoplable

Utiliza el docker buildcomando para crear una compilación de la imagen de Docker. Hay un montón de parámetros que podemos pasar con el comando. Pero uno que vamos a usar aquí es -t. Esto le da a su imagen una etiqueta de nombre que hace que sea fácil de recordar y de acceder.

No existe una forma estandarizada de nombrar su imagen, pero normalmente verá esto: el nombre de usuario de Docker seguido de una barra inclinada ( /) y luego el número de versión separado por dos puntos ( :).

docker build -t <name-tag> .

La etiqueta de nombre debe ser así: clumsycoder/myapp:1.0.0

El segundo argumento es la ubicación del Dockerfile. Como los nuestros están en el mismo directorio, podemos poner un punto (.).

Cuando ejecute el comando, verá que los pasos se ejecutan en el mismo orden en que están escritos en el archivo Dockerfile. Una vez hecho esto, aparecerá <baseID> construido con éxito en la terminal.

Puede usar baseIDpara acceder a la imagen particular de Docker en lugar de usar su etiqueta de nombre.

Puede verificar esto mirando la sección Imágenes en la aplicación Docker. También puede ver el contenedor local en la Containers/ Appssección.

Por el momento, ejecutemos nuestra imagen de Docker en nuestro sistema local.

docker run -p 3000:3000 <name-tag>

Recuerde, también puede usar <baseID>en lugar de <name-tag>.

Reenvío de puertos

Si ejecuta el comando anterior sin -p 3000:3000, no verá nada en el puerto 3000. Esto se debe a que incluso si hemos expuesto el puerto 3000 en Dockerfile, si no lo hemos hecho accesible al mundo exterior,

La -pbandera nos permite hacer el reenvío de puertos desde el contenedor a nuestra máquina local.

El reenvío de puertos es en realidad un gran concepto, pero esto es todo lo que necesitamos saber por ahora.

Visita http://localhost:3000/en tu navegador. Bueno, ha creado un contenedor Docker y lo está ejecutando en su máquina local. ¡Prestigio!

Por lo general, envía esta imagen a algún tipo de registro de contenedor para usarla en escenarios del mundo real. Podría ser un Docker Hub o cualquier otra cosa. Estamos utilizando Amazon Elastic Container Service proporcionado por AWS.

Para una comunicación fluida entre la imagen local de Docker y ECS, debemos configurar AWS CLI en nuestro sistema. Veamos cómo hacerlo.

Cómo configurar la CLI de AWS

AWS Command Line Interface es una herramienta de línea de comandos que nos permite utilizar los recursos de AWS a través de nuestra terminal. Cualquier cosa que podamos hacer en la consola de AWS o en la GUI web también se puede hacer con la CLI.

Tenemos que instalar y configurar AWS CLI en nuestro sistema para usar los servicios de ECS localmente. Para verificar si ya tiene instalado AWS CLI, ejecute este comando en la terminal:

aws cli

Si el comando no responde con nada, la CLI no está configurada. Si es así, siéntase libre de pasar a la siguiente sección.

Cómo instalar la CLI de AWS

Estoy usando Windows 10 con WSL2. Pero el procedimiento es similar para Mac OS y Linux Debian.

Ingresa a este sitio web y sigue los pasos para tu distribución. Para Windows, debe descargar un MSI. Luego aparecerá un mensaje de instalación. Simplemente siga y se instalará en unos minutos.

Ahora reinicie la terminal y ejecute de aws clinuevo. Configuremos un usuario para este perfil local.

Cómo configurar un usuario local para AWS CLI

Vaya a la sección IAM de la consola de AWS en la web. Siga este GIF para crear un nuevo usuario:

ecs-nuevo-usuario

crear un usuario con los derechos apropiados

Recordar:

  1. Clave de acceso: el acceso programático se verifica cuando ingresa el nombre del nuevo usuario.
  2. Agregue una política de usuario que brinde acceso completo a ECS. El nombre de la póliza es AmazonECS_FullAccess.
  3. Anote access key IDy Secret access key, ya que tendremos que usarlos más adelante.

Volvamos a nuestra buena terminal. Ejecute el comando de configuración en la terminal e ingrese su clave de acceso, clave de acceso secreta y región preferida. Sáltate el default output formatpor ahora.

aws configure

Verifique la configuración ejecutando el aws configure listcomando.

imagen-152

Verificación de la configuración de la CLI de AWS

¡Felicidades! Hemos configurado con éxito AWS CLI con nuestro terminal local. Ahora es el momento de enviar nuestra imagen de Docker a Amazon ECS.

Servicios de contenedores elásticos de AWS

Ha pasado tanto tiempo desde que hablamos de Docker. Hemos creado una imagen y un contenedor local de Docker. Tenemos que publicarlo desde nuestro repositorio local de Docker en AWS ECR.

¿Qué es ECS? Podrías preguntar.

Amazon Elastic Container Services, también conocido como ECS, es un servicio de orquestación de contenedores completamente administrado que facilita la implementación, administración y escalado de aplicaciones en contenedores.

Y Elastic Container Registry o ECR es el registro de contenedores Docker almacenados en ECS. Usaremos ECS para enviar nuestro contenedor Docker a ECR.

Cómo crear un repositorio en ECR

Para simplificar, sugiero mantener el mismo nombre que su proyecto.

aws ecr create-repository --repository-name <repo_name> --region <region_name>

Si no está seguro region_name, ponga us-east-1. Esto crearía su repositorio en la región US EAST-1. Una vez terminado, solicitará un objeto JSON como respuesta en la terminal.

imagen-153

Para un lado más seguro, consulte la consola de AWS y vea si se crea un repositorio:

aws-ecr-repo

verificar si se crea un repositorio

Recordar:

  1. No verá ninguna imagen en el repositorio. Porque no hemos empujado ninguna imagen todavía.
  2. Anote URIsu repositorio. Tendremos que usarlo pronto.

Cómo enviar una imagen Docker a ECR

Cada pieza ha sido creada individualmente hasta ahora. Es el momento de unir todas y cada una de las piezas y completar el puzzle.

Para que Docker envíe la imagen a ECR, primero debemos autenticar nuestras credenciales de Docker con AWS. Usamos el get-login-passwordcomando que recupera y muestra un token de autenticación usando la API GetAuthorizationToken que podemos usar para autenticarnos en un registro de Amazon ECR.

aws ecr get-login-password --region <region_name>

Use el mismo region_nameque usó al crear un repositorio. Guarde el token cifrado en algún lugar por un momento.

Tome una respiración profunda ahora. Necesitamos dos cosas que te dije para guardar en alguna parte. El primero es el token que acabo de mencionar y el segundo es el URI del repositorio del paso anterior.

¿Lo entendiste? Menosgooo!

 aws ecr --region <region> | docker login -u AWS -p <encrypted_token> <repo_uri>

No hace falta decir que coloque la misma región donde existe su repositorio.

Estamos consultando la API de ECR proporcionada por AWS CLI. Más tarde estamos canalizando el inicio de sesión de Docker.

  • -u AWS: Usuario predeterminado proporcionado por AWS.
  • -p <encrypted_token>: Contraseña que recuperamos en el último paso.
  • repo_uri: URI de nuestro repositorio.

Si el inicio de sesión es exitoso, se mostrará Login Succeeded en la terminal.

Cómo etiquetar una imagen de Docker local

Este comando etiqueta una imagen de Docker local con el ECR Repo.

docker tag <source_image_tag> <target_ecr_repo_uri>
  • source_image_tag: El nombre que le dio al docker buildcomando. Si lo sigues, es username/image_name:tag.
  • target_ecr_repo_uri: URI del repositorio de ECR.

Cómo enviar la imagen de Docker a ECR

El paso final: ¡la última pieza del rompecabezas!

El siguiente comando envía el archivo Docker local al repositorio de ECR remoto. Dependiendo del tamaño de la imagen, llevará algún tiempo terminar.

docker push <ecr-repo-uri>

¡Viva! Lo hemos logrado 🎉

imagen-182

Puede ver la imagen cargada en la consola de AWS. Vaya a ECR, haga clic en repositorios y abra el repositorio de ECR que cargamos hace unos minutos. Cópialo Image URIsi quieres usarlo más.

Terminando

En este artículo, cubrimos cómo implementar una imagen de Docker en AWS ECS. Puede usar este contenedor Docker que se encuentra dentro de ECR para alojar su aplicación en el servidor. Podría ser AWS EC2 o cualquier otra cosa.

Docker y AWS se utilizan ampliamente para desarrollar aplicaciones a gran escala. Tener una idea de cómo funcionan estas cosas juntas debería ayudarlo a crear aplicaciones a gran escala en el futuro.

Dicho esto, espero que este artículo te haya ayudado en tu trabajo, estudios o aprendizajes. Si lo hizo, también puede encontrar útiles mis otros artículos.

¡Feliz envío! 🐳🚢

Fuente: https://www.freecodecamp.org/news/build-and-push-docker-images-to-aws-ecr/

#aws #docker 

Adnan Malik

1604372986

Serverless Containers With AWS Fargate and Docker

In AWS there are a few services which seem similar or related when it comes to containerisation. They do have their nuances so let’s begin with an introduction of what these are and their similarities and differences (according to the AWS documentation)

Elastic Container Service (ECS)

  • Fully managed container orchestration service
  • Manages the lifecycle and placement of tasks comprised of one or more containers that work together
  • Does not run or execute your container(s)
  • Containers run using ECS Container Instances (normal EC2 instances with ECS Container Agent) or Fargate
  • ECS Container Agent regularly polls the ECS API to manage state
  • Cluster of container instances run in an auto-scaling group
  • You** manage your own EC2 instance, patching and scaling**
  • ECS is free but pricing is per running EC2 instance
  • Offers integration with Elastic Load Balancing (ELB)
  • Supports Application Load Balancer (ALB), the Network Load Balancer (NLB) and Classic Load Balancer (CLB)
  • Load balancing is efficient
  • Each task has its own Elastic Network Interface (ENI)
  • Supports IAM roles for tasks
  • AWS proprietary

#aws-fargate #aws-ecr #docker #aws-ecs #aws-eks

Iliana  Welch

Iliana Welch

1595249460

Docker Explained: Docker Architecture | Docker Registries

Following the second video about Docker basics, in this video, I explain Docker architecture and explain the different building blocks of the docker engine; docker client, API, Docker Daemon. I also explain what a docker registry is and I finish the video with a demo explaining and illustrating how to use Docker hub

In this video lesson you will learn:

  • What is Docker Host
  • What is Docker Engine
  • Learn about Docker Architecture
  • Learn about Docker client and Docker Daemon
  • Docker Hub and Registries
  • Simple demo to understand using images from registries

#docker #docker hub #docker host #docker engine #docker architecture #api

Seamus  Quitzon

Seamus Quitzon

1601341562

AWS Cost Allocation Tags and Cost Reduction

Bob had just arrived in the office for his first day of work as the newly hired chief technical officer when he was called into a conference room by the president, Martha, who immediately introduced him to the head of accounting, Amanda. They exchanged pleasantries, and then Martha got right down to business:

“Bob, we have several teams here developing software applications on Amazon and our bill is very high. We think it’s unnecessarily high, and we’d like you to look into it and bring it under control.”

Martha placed a screenshot of the Amazon Web Services (AWS) billing report on the table and pointed to it.

“This is a problem for us: We don’t know what we’re spending this money on, and we need to see more detail.”

Amanda chimed in, “Bob, look, we have financial dimensions that we use for reporting purposes, and I can provide you with some guidance regarding some information we’d really like to see such that the reports that are ultimately produced mirror these dimensions — if you can do this, it would really help us internally.”

“Bob, we can’t stress how important this is right now. These projects are becoming very expensive for our business,” Martha reiterated.

“How many projects do we have?” Bob inquired.

“We have four projects in total: two in the aviation division and two in the energy division. If it matters, the aviation division has 75 developers and the energy division has 25 developers,” the CEO responded.

Bob understood the problem and responded, “I’ll see what I can do and have some ideas. I might not be able to give you retrospective insight, but going forward, we should be able to get a better idea of what’s going on and start to bring the cost down.”

The meeting ended with Bob heading to find his desk. Cost allocation tags should help us, he thought to himself as he looked for someone who might know where his office is.

#aws #aws cloud #node js #cost optimization #aws cli #well architected framework #aws cost report #cost control #aws cost #aws tags

Jeevi Academy

1672143538

7 Best Chrome Extensions for UI/UX Designers | Jeevisoft |

#chromeextension #chrome #extension #ux #uxbook #contentmarketing #design #principles #gooddesign ##ui #userinterface #services #academy #userflow #userjourney #devops #automation #designer #gestalt #ux #designer #skills #interviewquestions #aws #docker#interviewquestions #interview #aws #scenario #cheatsheet #solutionarchitect #azure #ansibleinterview #questions #Devops #interview #guideline #Terraform #cheatsheet #interview #steps #localbusiness #business #videocreating #containor #devops #interview #opportunities #findabestway #certification #top #digitalmarketing #seo #mail #ppc #socialmediamarketing #shorts #technology #frontend #developer #youtube#programming #learn #tech #technology #trending #beginners #worldnews #creative #knowledge #academy #shorts #youtubeshorts #youtube #aws #docker #ui #website #webdesign #development #developer