La forma más común de configurar la memoria y CPU de un contenedor Docker es a través de argumentos de línea de comando cuando se inicia el contenedor con `docker run`.
Aquí te muestro cómo:
- Memoria: puedes usar la opción `-m` o `—memory` para limitar la cantidad de memoria que un contenedor puede usar. Por ejemplo, si quieres limitar un contenedor a usar no más de 500mb de memoria, usa el siguiente comando:
```shell
docker run -m 500m my-image
```
- CPU: puedes usar la opción `—cpus` para especificar la cantidad de CPUs que el contenedor puede usar. Por ejemplo, si quieres limitar un contenedor a usar no más de 1.5 CPUs, usa el siguiente comando:
```shell
docker run —cpus 1.5 my-image
```
- También puedes usar la opción `—cpu-shares` para dar a un contenedor un mayor o menor peso en términos de asignación de CPU en relación con otros contenedores. Por ejemplo, si tienes dos contenedores y quieres que uno de ellos tenga el doble de tiempo de CPU que el otro, podrías hacer:
```shell
docker run —cpu-shares 256 my-image1
docker run —cpu-shares 512 my-image2
```
Recuerda que estos límites se establecen para asegurar que un contenedor en particular no consuma todos los recursos del host, lo que podría afectar a otros contenedores o al host mismo. Por otro lado, en ambientes de producción, podrías querer considerar el uso de orquestadores como Kubernetes o Docker Swarm, los cuales proveen formas más avanzadas (y generalmente más fáciles) para manejar los recursos a nivel de contenedor.