Ejecución de las imágenes oficiales de Amazon ECR Public o Docker para la AWS CLI
En este tema se describe cómo ejecutar, controlar la versión y configurar la AWS CLI versión 2 en Docker mediante la imagen oficial de Amazon Elastic Container Registry Public (Amazon ECR Public) o Docker Hub. Para obtener más información sobre cómo usar Docker, consulte la documentación de Docker
Las imágenes oficiales proporcionan aislamiento, portabilidad y seguridad que AWS respalda y mantiene directamente. Esto le permite utilizar la versión 2 de la AWS CLI en un entorno basado en contenedores sin tener que administrar la instalación usted mismo.
Temas
- Requisitos previos
- Decisión entre Amazon ECR Public y Docker Hub
- Ejecución de las imágenes oficiales de AWS CLI versión 2
- Notas sobre interfaces y compatibilidad con versiones anteriores de las imágenes oficiales
- Uso de versiones y etiquetas específicas
- Actualización a la imagen oficial más reciente
- Comparta llos archivos anfitrión, credenciales, variables del entorno y configuración
- Acortamiento del comando docker run
Requisitos previos
Debe tener instalado Docker. Para obtener instrucciones de instalación, consulte el sitio web de Docker
Para verificar la instalación de Docker, ejecute el siguiente comando y confirme que hay un resultado.
$
docker --version
Docker version 19.03.1
Decisión entre Amazon ECR Public y Docker Hub
Recomendamos utilizar Amazon ECR Public en lugar de Docker Hub para las imágenes de la AWS CLI. Docker Hub tiene una limitación de velocidad más estricta para los consumidores públicos, lo que puede causar problemas de limitación. Además, Amazon ECR Public replica imágenes en más de una región para proporcionar una disponibilidad sólida y controlar los problemas de interrupción de las regiones.
Para obtener más información sobre la limitación de velocidad de Docker Hub consulte Understanding Docker Hub Rate Limiting
Ejecución de las imágenes oficiales de AWS CLI versión 2
La primera vez que utilice el comando docker run
, se descargará la última imagen en su equipo. Cada uso posterior del comando docker run
se ejecuta desde la copia local.
Para ejecutar las imágenes Docker de la AWS CLI versión 2, utilice el comando docker run
.
El comando funciona de la siguiente manera:
-
docker run --rm -it
: el equivalente de larepository/name
aws
ejecutable. Cada vez que ejecuta este comando, Docker hace girar un contenedor de la imagen descargada y ejecuta el comandoaws
. De forma predeterminada, la imagen utiliza la versión más reciente de la AWS CLI versión 2.Por ejemplo, para llamar al comando
aws --version
en Docker, ejecute lo siguiente. -
--rm
: especifica que se limpie el contenedor después de que el comando salga. -
-it
: especifica que se abra un pseudoTTY constdin
. Esto le permite proporcionar datos a la versión 2 de la AWS CLI mientras se está ejecutando en un contenedor, por ejemplo, mediante el uso de los comandosaws configure
yaws help
. Al elegir si se debe omitir-it
, tenga en cuenta lo siguiente:-
Si está ejecutando scripts,
-it
no es necesario. -
Si experimenta errores con los scripts, omitir
-it
de la llamada Docker puede resolver el problema. -
Si está intentando canalizar la salida,
-it
puede provocar errores y la omisión-it
de la llamada Docker puede resolver este problema. Si desea conservar la marca-it
, pero aún así quisiera canalizar la salida, desactivar la Paginación del lado del cliente que AWS CLI usa de forma predeterminada debería resolver el problema.
-
Para obtener más información sobre el comando docker run
, consulte la guía de referencia de Docker
Notas sobre interfaces y compatibilidad con versiones anteriores de las imágenes oficiales
-
La única herramienta admitida en la imagen es AWS CLI. Solo el ejecutable
aws
se debe ejecutar directamente. Por ejemplo, aunqueless
ygroff
están instalados explícitamente en la imagen, no se deben ejecutar directamente fuera de un comando AWS CLI. -
El directorio de trabajo de
/aws
está controlado por el usuario. La imagen no se escribirá en este directorio, a menos que el usuario le indique que ejecute un comando de AWS CLI. -
No hay garantías de compatibilidad con versiones anteriores para confiar en la última etiqueta. Para garantizar la compatibilidad con versiones anteriores, debe anclar una etiqueta
<major.minor.patch>
específica, ya que esas etiquetas son inmutables; solo se enviarán una vez.
Uso de versiones y etiquetas específicas
La imagen oficial de la AWS CLI versión 2 tiene varias versiones que puede usar, comenzando con la versión 2.0.6
. Para ejecutar una versión específica de la versión 2 de la AWS CLI, agregue la etiqueta adecuada al comando docker run
. La primera vez que utiliza el comando docker run
con una etiqueta, la imagen más reciente para esa etiqueta se descarga en el equipo. Cada uso posterior del comando docker run
con esa etiqueta se ejecuta desde la copia local.
Puede utilizar dos tipos de etiquetas:
-
latest
: define la última versión de la de la AWS CLI versión 2 para la imagen. Le recomendamos que utilice la etiquetalatest
cuando desee la versión más reciente de la versión 2 de la AWS CLI. Sin embargo, no hay garantías de compatibilidad con versiones anteriores al usar esta etiqueta. La etiquetalatest
se utiliza de forma predeterminada en el comandodocker run
. Para utilizar explícitamente la etiquetalatest
, agregue la etiqueta al nombre de la imagen del contenedor. -
<major.minor.patch>
: define una versión específica de la AWS CLI versión 2 para la imagen Docker. Si piensa utilizar una imagen oficial en producción, le recomendamos que use una versión específica de la AWS CLI versión 2 para garantizar la compatibilidad con versiones anteriores. Por ejemplo, para ejecutar la versión2.0.6
, agregue la versión al nombre de la imagen del contenedor.
Actualización a la imagen oficial más reciente
Dado que la imagen más reciente se descarga en el equipo solo la primera vez que utiliza el comando docker run
, debe extraer manualmente una imagen actualizada. Para actualizar manualmente a la versión más reciente, le recomendamos que extraiga la imagen etiquetada latest
. Al extraer la imagen, se descarga la versión más reciente en el equipo.
Comparta llos archivos anfitrión, credenciales, variables del entorno y configuración
Dado que la versión 2 de la AWS CLI se ejecuta en un contenedor, la CLI no puede acceder de forma predeterminada al sistema de archivos anfitrión, que incluye la configuración y las credenciales. Para compartir el sistema de archivos anfitrión, las credenciales y la configuración en el contenedor, monte el directorio ~/.aws
del sistema host en el contenedor en /root/.aws
con la etiqueta -v
del comando docker run
. Esto permite que la versión 2 de la AWS CLI, que se está ejecutando en el contenedor, localice la información del archivo anfitrión.
Para obtener más información acerca la etiqueta -v
y el montaje, consulte la guía de referencia de Docker
nota
Para obtener información sobre los archivos de config
y credentials
, consulte Opciones de los archivos de configuración y credenciales en la AWS CLI.
Ejemplo 1: proporcionar credenciales y configuración
En este ejemplo, proporcionamos las credenciales de anfitrión y la configuración al ejecutar el comando s3 ls
para mostrar los buckets en Amazon Simple Storage Service (Amazon S3). Los siguientes ejemplos utilizan la ubicación predeterminada para los archivos de credenciales y de configuración de la AWS CLI, para utilizar una ubicación diferente, cambie la ruta del archivo.
Puede llamar a variables de entorno específicas del sistema utilizando el marcador -e
. Para utilizar una variable de entorno, llámelo por su nombre.
Ejemplo 2: Descarga de un archivo Amazon S3 en el sistema de anfitrión
Para algunos comandos de la AWS CLI versión 2, puede leer archivos del sistema de host en el contenedor o escribir archivos desde el contenedor en el sistema de host.
En este ejemplo, descargamos el objeto S3
s3://aws-cli-docker-demo/hello
a su sistema de archivos local montando el directorio de trabajo actual en el directorio /aws
del contenedor. Al descargar el objeto hello
en el directorio /aws
del contenedor, el archivo también se guarda en el directorio de trabajo actual del sistema de host.
Para confirmar que el archivo descargado existe en el sistema de archivos local, ejecute lo siguiente.
Linux y macOS
$
cat hello
Hello from Docker!
Windows PowerShell
$
type hello
Hello from Docker!
Ejemplo 3: uso de la variable de entorno AWS_PROFILE
Puede llamar a variables de entorno específicas del sistema utilizando el marcador -e
. Llame a cada variable de entorno que desee utilizar. En este ejemplo, proporcionamos las credenciales de anfitrión, la configuración y la variable de entorno AWS_PROFILE
cuando se ejecuta el comando s3 ls
para mostrar los buckets en Amazon Simple Storage Service (Amazon S3).
Acortamiento del comando docker run
Para acortar el comando docker run
, le sugerimos que utilice la capacidad del sistema operativo para crear un symbolic
link
alias
doskey
aws
, puede ejecutar uno de los siguientes comandos:
-
Para obtener acceso básico a los comandos de
aws
, ejecute lo siguiente. -
Para acceder al sistema de archivos anfitrión y a las opciones de configuración cuando se utilizan comandos de
aws
, ejecute lo siguiente. -
Para asignar una versión específica para usarla en su alias de
aws
, agregue la etiqueta de versión.
Después de configurar el alias, puede ejecutar la AWS CLI versión 2 desde un contenedor como si estuviera instalado en su sistema host.
$
aws --version
aws-cli/2.17.20 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10