{"id":225,"date":"2024-07-21T11:45:23","date_gmt":"2024-07-21T11:45:23","guid":{"rendered":"https:\/\/dockerpros.com\/?p=225"},"modified":"2024-07-21T11:45:23","modified_gmt":"2024-07-21T11:45:23","slug":"como-puedo-configurar-limites-de-recursos-en-docker","status":"publish","type":"post","link":"https:\/\/dockerpros.com\/es\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/","title":{"rendered":"How do I set resource limits in Docker?"},"content":{"rendered":"<h2>C\u00f3mo Establecer L\u00edmites de Recursos en Docker: Gu\u00eda Avanzada<\/h2>\n<p>Docker has revolutionized the way we build, ship, and <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> applications by enabling developers to package their applications and dependencies into containers. This containerization technology comes with a multitude of features, among which the ability to set resource limits is crucial for ensuring that your applications <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> efficiently and do not consume excessive system resources. In this article, we will delve into how to manage resource limits in Docker containers, explore the various options available, and understand the implications of these settings.<\/p>\n<h3>Understanding Docker Resource Management<\/h3>\n<p>Antes de adentrarse en los detalles de c\u00f3mo establecer l\u00edmites de recursos, es esencial comprender lo que implica la gesti\u00f3n de recursos en Docker. La gesti\u00f3n de recursos permite especificar cu\u00e1nta CPU, memoria y E\/S (I\/O) puede utilizar un contenedor de Docker. <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> can consume. By imposing limits, you can prevent a single <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> from monopolizing system resources, thus ensuring that other containers and the host system remain performant and stable.<\/p>\n<p>Docker utiliza tanto l\u00edmites duros como suaves para la gesti\u00f3n de recursos:<\/p>\n<ul>\n<li>\n<p><strong>L\u00edmites absolutos<\/strong>: These limits are strict and cannot be exceeded under any circumstances. For example, if you set a memory limit, the <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> will be terminated if it attempts to exceed that limit.<\/p>\n<\/li>\n<li>\n<p><strong>Soft Limits<\/strong>: These limits allow some leeway. For instance, with CPU shares, a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> can use more CPU resources when available, but it will be throttled when competing with other containers for CPU time.<\/p>\n<\/li>\n<\/ul>\n<h3>Setting Resource Limits for CPU<\/h3>\n<p>Docker ofrece varias opciones para controlar la asignaci\u00f3n de recursos de CPU, incluyendo:\n\n- **CPU Shares**: Permite establecer una proporci\u00f3n relativa de CPU que se asignar\u00e1 a un contenedor en comparaci\u00f3n con otros contenedores. Por ejemplo, si un contenedor tiene 1024 shares y otro tiene 512, el primero recibir\u00e1 el doble de tiempo de CPU que el segundo.\n\n- **CPU Period**: Define el per\u00edodo de tiempo (en microsegundos) para el cual se mide el uso de CPU. El valor predeterminado es 100000 (100ms).\n\n- **CPU Quota**: Especifica la cantidad m\u00e1xima de tiempo de CPU (en microsegundos) que un contenedor puede usar durante cada per\u00edodo de CPU. Por ejemplo, si el per\u00edodo es 100000 y la cuota es 50000, el contenedor puede usar hasta el 50% de un n\u00facleo de CPU.\n\n- **CPU Set**: Permite restringir un contenedor a un conjunto espec\u00edfico de n\u00facleos de CPU. Por ejemplo, puedes asignar un contenedor para que solo use los n\u00facleos 0 y 1.\n\n- **CPU Affinity**: Similar al CPU Set, pero permite una mayor flexibilidad al especificar qu\u00e9 n\u00facleos de CPU puede usar un contenedor.\n\n- **CPU CFS (Completely Fair Scheduler)**: Es el programador de CPU predeterminado en Linux. Docker utiliza CFS para gestionar la asignaci\u00f3n de CPU entre contenedores.\n\n- **CPU Limit**: Establece un l\u00edmite m\u00e1ximo en el uso de CPU para un contenedor. Por ejemplo, puedes limitar un contenedor para que no use m\u00e1s del 80% de un n\u00facleo de CPU.\n\n- **CPU Reservation**: Garantiza que un contenedor recibir\u00e1 una cantidad m\u00ednima de tiempo de CPU, incluso si otros contenedores est\u00e1n usando la mayor\u00eda de los recursos.\n\n- **CPU Priority**: Permite establecer una prioridad para un contenedor, lo que influye en la cantidad de tiempo de CPU que recibe en comparaci\u00f3n con otros contenedores.\n\n- **CPU Burst**: Permite que un contenedor use m\u00e1s CPU de la que se le ha asignado durante un corto per\u00edodo de tiempo, si los recursos est\u00e1n disponibles.\n\nEstas opciones se pueden combinar para crear configuraciones de CPU personalizadas que se adapten a las necesidades espec\u00edficas de tus aplicaciones y cargas de trabajo. <code>--cpus<\/code>, <code>--cpu-shares<\/code>, and <code>--cpus del conjunto de cpus<\/code>.<\/p>\n<h4>1. Usando <code>--cpus<\/code><\/h4>\n<p>El <code>--cpus<\/code> flag allows you to limit the total number of CPUs that a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> can use. For instance, if you want to restrict a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> to use only 2 CPUs, you can <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>:<\/p>\n<pre><code class=\"language-bash\">docker run --cpus=\"2.0\" mi_app<\/code><\/pre>\n<p>You can specify fractional values as well. If you set it to <code>0.5<\/code>, the <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> will be allowed to use half of one CPU core.<\/p>\n<h4>2. Using <code>--cpu-shares<\/code><\/h4>\n<p>El <code>--cpu-shares<\/code> option is a way to specify the relative weight of CPU allocation for a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>. By default, Docker sets the CPU share to 1024. If you <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> con <code>--cpu-shares=512<\/code>, it will receive half the CPU time compared to containers with the default share under heavy load.<\/p>\n<p>Ejemplo:<\/p>\n<pre><code class=\"language-bash\">Docker es una plataforma de c\u00f3digo abierto que permite automatizar el despliegue de aplicaciones dentro de contenedores de software. Proporciona una capa adicional de abstracci\u00f3n y automatizaci\u00f3n de virtualizaci\u00f3n a nivel de sistema operativo en Linux.\n\nLos contenedores Docker empaquetan una aplicaci\u00f3n con todas sus dependencias en un formato estandarizado que puede ejecutarse en cualquier entorno Linux. Esto facilita enormemente el desarrollo, el testing y el despliegue de aplicaciones, ya que se eliminan los problemas de \"funciona en mi m\u00e1quina\".\n\nAlgunas de las caracter\u00edsticas clave de Docker son:\n\n- Aislamiento: Cada contenedor se ejecuta de forma aislada, con su propio sistema de archivos, procesos, etc.\n\n- Portabilidad: Los contenedores pueden ejecutarse en cualquier entorno Linux sin necesidad de modificarlos.\n\n- Ligereza: Los contenedores comparten el kernel del sistema operativo anfitri\u00f3n, lo que los hace mucho m\u00e1s ligeros que las m\u00e1quinas virtuales tradicionales.\n\n- Escalabilidad: Es muy f\u00e1cil escalar horizontalmente una aplicaci\u00f3n ejecutando m\u00faltiples instancias de un contenedor.\n\nDocker se ha convertido en una herramienta fundamental en el desarrollo de aplicaciones modernas, especialmente en el contexto de la arquitectura de microservicios y la computaci\u00f3n en la nube. <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> --cpu-shares=512 my_app<\/code><\/pre>\n<p>In this case, the <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> will receive CPU time based on the weight you have assigned relative to others.<\/p>\n<h4>3. Usando <code>--cpus del conjunto de cpus<\/code><\/h4>\n<p>El <code>--cpus del conjunto de cpus<\/code> option allows you to specify which logical CPUs (cores) a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> lata <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> on. This is especially useful for multi-core systems where you may want to restrict a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> to a specific set of CPUs.<\/p>\n<p>Ejemplo:<\/p>\n<pre><code class=\"language-bash\">docker run --cpuset-cpus=\"0,1\" mi_app<\/code><\/pre>\n<p>In this case, the <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> can only <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> on CPU cores 0 and 1.<\/p>\n<h3>Establecer l\u00edmites de recursos para la memoria\n\nEn este cap\u00edtulo, aprender\u00e1 a establecer l\u00edmites de recursos para la memoria. Los l\u00edmites de recursos para la memoria se establecen de la misma manera que los l\u00edmites de recursos para la CPU. Para establecer l\u00edmites de recursos para la memoria, utilice la opci\u00f3n --memory. Por ejemplo, para establecer un l\u00edmite de memoria de 128 MB para un contenedor, ejecute el siguiente comando:\n\n```\n# docker run -d --name ch5_mariadb --memory 128m \\\n-v \/var\/ch5_mariadb:\/var\/lib\/mysql \\\n-e MYSQL_ROOT_PASSWORD=mypass \\\n-e MYSQL_DATABASE=my_data \\\n-e MYSQL_USER=vsftpd \\\n-e MYSQL_PASSWORD=mypass \\\nmariadb:latest\n```\n\nEn este ejemplo, el l\u00edmite de memoria se establece en 128 MB. El contenedor no podr\u00e1 utilizar m\u00e1s de 128 MB de memoria. Si el contenedor intenta utilizar m\u00e1s de 128 MB de memoria, se detendr\u00e1.\n\nTambi\u00e9n puede establecer un l\u00edmite de memoria suave utilizando la opci\u00f3n --memory-reservation. Un l\u00edmite de memoria suave es un l\u00edmite que el contenedor puede superar temporalmente. Sin embargo, si el contenedor supera el l\u00edmite de memoria suave durante un per\u00edodo prolongado de tiempo, se detendr\u00e1.\n\nPor ejemplo, para establecer un l\u00edmite de memoria suave de 64 MB para un contenedor, ejecute el siguiente comando:\n\n```\n# docker run -d --name ch5_mariadb --memory 128m \\\n--memory-reservation 64m \\\n-v \/var\/ch5_mariadb:\/var\/lib\/mysql \\\n-e MYSQL_ROOT_PASSWORD=mypass \\\n-e MYSQL_DATABASE=my_data \\\n-e MYSQL_USER=vsftpd \\\n-e MYSQL_PASSWORD=mypass \\\nmariadb:latest\n```\n\nEn este ejemplo, el contenedor puede utilizar hasta 128 MB de memoria. Sin embargo, si el contenedor utiliza m\u00e1s de 64 MB de memoria durante un per\u00edodo prolongado de tiempo, se detendr\u00e1.\n\nEs importante tener en cuenta que los l\u00edmites de recursos para la memoria no son absolutos. El contenedor puede utilizar m\u00e1s memoria de la que se ha establecido si el sistema operativo host tiene memoria disponible. Sin embargo, si el sistema operativo host se queda sin memoria, el contenedor se detendr\u00e1.<\/h3>\n<p>Memory limits can be set using the <code>--memoria<\/code> and <code>--memoria-de-intercambio<\/code> options.<\/p>\n<h4>1. Usando <code>--memoria<\/code><\/h4>\n<p>El <code>--memoria<\/code> flag allows you to limit the amount of memory a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> can use. If a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> exceeds this limit, it will be killed and potentially restarted if you have a restart policy in place. <\/p>\n<p>Ejemplo:<\/p>\n<pre><code class=\"language-bash\">docker run --memory=\"512m\" mi_aplicaci\u00f3n<\/code><\/pre>\n<p>This command restricts the <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> to use a maximum of 512 MB of RAM.<\/p>\n<h4>2. Using <code>--memoria-de-intercambio<\/code><\/h4>\n<p>El <code>--memoria-de-intercambio<\/code> option allows you to set a limit on the total amount of memory plus swap a <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> can use. If set to <code>-1<\/code>, the <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> can use unlimited swap.<\/p>\n<p>Ejemplo:<\/p>\n<pre><code class=\"language-bash\">docker run --memory=\"512m\" --memory-swap=\"1g\" my_app<\/code><\/pre>\n<p>En este escenario, <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> can use up to 512 MB of physical memory and up to 1 GB of swap memory.<\/p>\n<h3>Establecer l\u00edmites de E\/S<\/h3>\n<p>In addition to CPU and memory, Docker also allows you to set limits on block I\/O using the <code>--blkio-weight<\/code> Esta opci\u00f3n define el peso de las E\/S de bloques del contenedor en relaci\u00f3n con otros contenedores.<\/p>\n<h4>Usando <code>--blkio-weight<\/code><\/h4>\n<p>El <code>--blkio-weight<\/code> La opci\u00f3n acepta un valor entre 10 y 1000, donde 10 es la prioridad m\u00e1s baja y 1000 es la m\u00e1s alta.<\/p>\n<p>Ejemplo:<\/p>\n<pre><code class=\"language-bash\">Docker es una plataforma de c\u00f3digo abierto que permite automatizar el despliegue de aplicaciones dentro de contenedores de software. Proporciona una capa adicional de abstracci\u00f3n y automatizaci\u00f3n de virtualizaci\u00f3n a nivel de sistema operativo en Linux.\n\nLos contenedores Docker empaquetan una aplicaci\u00f3n con todas sus dependencias en un formato estandarizado que puede ejecutarse en cualquier entorno Linux. Esto facilita enormemente el desarrollo, el testing y el despliegue de aplicaciones, ya que se eliminan los problemas de \"funciona en mi m\u00e1quina\".\n\nAlgunas de las caracter\u00edsticas clave de Docker son:\n\n- Aislamiento: Cada contenedor se ejecuta de forma aislada, con su propio sistema de archivos, procesos, etc.\n\n- Portabilidad: Los contenedores pueden ejecutarse en cualquier entorno Linux sin necesidad de modificarlos.\n\n- Ligereza: Los contenedores comparten el kernel del sistema operativo anfitri\u00f3n, lo que los hace mucho m\u00e1s ligeros que las m\u00e1quinas virtuales tradicionales.\n\n- Escalabilidad: Es muy f\u00e1cil escalar horizontalmente una aplicaci\u00f3n ejecutando m\u00faltiples instancias de un contenedor.\n\nDocker se ha convertido en una herramienta fundamental en el desarrollo de aplicaciones modernas, especialmente en el contexto de la arquitectura de microservicios y la computaci\u00f3n en la nube. <span class=\"glossaryai-tooltip glossary-term-672\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\" target=\"_blank\">run<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">\"RUN\" refers to a command in various programming languages and operating systems to execute a specified program or script. It initiates processes, providing a controlled environment for task execution.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/run\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> --blkio-weight=500 my_app<\/code><\/pre>\n<p>Este comando establece una prioridad media para las operaciones de E\/S del contenedor, permitiendo que funcione de manera razonable sin sobrecargar el sistema.<\/p>\n<h3>Pr\u00e1cticas recomendadas para l\u00edmites de recursos\n\nEn este cap\u00edtulo, aprender\u00e1 a establecer l\u00edmites de recursos para sus pods. Los l\u00edmites de recursos son una parte importante de la administraci\u00f3n de recursos en Kubernetes. Los l\u00edmites de recursos le permiten controlar la cantidad de recursos que un pod puede usar. Esto es importante porque evita que un pod use demasiados recursos y afecte negativamente a otros pods en el mismo nodo.\n\nLos l\u00edmites de recursos se establecen en el archivo de manifiesto del pod. El archivo de manifiesto es un archivo YAML que describe el pod y sus recursos. El archivo de manifiesto incluye una secci\u00f3n de especificaci\u00f3n que define los recursos que el pod necesita. La secci\u00f3n de especificaci\u00f3n incluye los l\u00edmites de recursos que el pod puede usar.\n\nLos l\u00edmites de recursos se establecen utilizando las siguientes claves:\n\n- requests.cpu: La cantidad m\u00ednima de CPU que el pod necesita.\n- requests.memory: La cantidad m\u00ednima de memoria que el pod necesita.\n- limits.cpu: La cantidad m\u00e1xima de CPU que el pod puede usar.\n- limits.memory: La cantidad m\u00e1xima de memoria que el pod puede usar.\n\nLos l\u00edmites de recursos se establecen en unidades de medida espec\u00edficas. Las unidades de medida para CPU son milicores. Un milicore es 1\/1000 de un n\u00facleo de CPU. Las unidades de medida para memoria son bytes. Puede usar las siguientes abreviaturas para especificar la cantidad de memoria:\n\n- K: Kilobyte\n- M: Megabyte\n- G: Gigabyte\n- T: Terabyte\n- P: Petabyte\n- E: Exabyte\n\nPor ejemplo, si desea establecer un l\u00edmite de CPU de 500 milicores y un l\u00edmite de memoria de 128 megabytes, puede usar el siguiente archivo de manifiesto:\n\n```yaml\napiVersion: v1\nkind: Pod\nmetadata:\n  name: my-pod\nspec:\n  containers:\n  - name: my-container\n    image: my-image\n    resources:\n      requests:\n        cpu: 500m\n        memory: 128Mi\n      limits:\n        cpu: 1000m\n        memory: 256Mi\n```\n\nEn este ejemplo, el pod solicita 500 milicores de CPU y 128 megabytes de memoria. El pod tambi\u00e9n tiene un l\u00edmite de 1000 milicores de CPU y 256 megabytes de memoria.\n\nLos l\u00edmites de recursos son importantes porque evitan que un pod use demasiados recursos y afecte negativamente a otros pods en el mismo nodo. Si un pod intenta usar m\u00e1s recursos de los que se le han asignado, el kubelet matar\u00e1 el pod y lo reiniciar\u00e1.\n\nLos l\u00edmites de recursos tambi\u00e9n son importantes porque permiten que Kubernetes planifique los pods de manera m\u00e1s eficiente. Kubernetes utiliza los l\u00edmites de recursos para determinar qu\u00e9 nodos son adecuados para ejecutar un pod. Si un pod tiene l\u00edmites de recursos altos, Kubernetes intentar\u00e1 programarlo en un nodo con suficientes recursos disponibles.\n\nEn resumen, los l\u00edmites de recursos son una parte importante de la administraci\u00f3n de recursos en Kubernetes. Los l\u00edmites de recursos le permiten controlar la cantidad de recursos que un pod puede usar. Los l\u00edmites de recursos se establecen en el archivo de manifiesto del pod y se utilizan para evitar que un pod use demasiados recursos y afecte negativamente a otros pods en el mismo nodo.<\/h3>\n<p>Setting resource limits in Docker is essential for maintaining a stable and efficient environment. Here are some best practices to consider:<\/p>\n<h4>1. Analizar el uso de recursos<\/h4>\n<p>Antes de establecer l\u00edmites, monitorea el uso de recursos de tus aplicaciones para comprender sus requisitos. Herramientas como <code>docker stats<\/code> puede proporcionar una visi\u00f3n en tiempo real del consumo de recursos de los contenedores en ejecuci\u00f3n.<\/p>\n<h4>2. Comience con L\u00edmites Conservadores<\/h4>\n<p>Inicialmente, establezca l\u00edmites conservadores y aj\u00fastelos gradualmente en funci\u00f3n del rendimiento de la aplicaci\u00f3n y las necesidades de recursos. Este enfoque puede ayudar a prevenir la degradaci\u00f3n del rendimiento y garantizar la estabilidad del sistema.<\/p>\n<h4>3. Prueba bajo carga<\/h4>\n<p>Prueba tus contenedores bajo carga para determinar c\u00f3mo se comportan con los l\u00edmites impuestos. Esta prueba puede ayudar a identificar cuellos de botella o problemas antes de desplegar en un entorno de producci\u00f3n.<\/p>\n<h4>4. Use Resource Quotas in Swarm Mode<\/h4>\n<p>Si est\u00e1s usando <span class=\"glossaryai-tooltip glossary-term-655\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/docker-swarm\/\" target=\"_blank\">Docker Swarm<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Docker Swarm es una herramienta de orquestaci\u00f3n de contenedores que permite la gesti\u00f3n de un cl\u00faster de motores Docker. Simplifica el escalado y la implementaci\u00f3n, garantizando alta disponibilidad y equilibrio de carga entre los servicios.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/docker-swarm\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>, consider using resource quotas to limit the total resources available to a <span class=\"glossaryai-tooltip glossary-term-681\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/service\/\" target=\"_blank\">servicio<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Service refers to the act of providing assistance or support to fulfill specific needs or requirements. In various domains, it encompasses customer service, technical support, and professional services, emphasizing efficiency and user satisfaction.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/service\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>. Esto puede ayudar a administrar los recursos en m\u00faltiples contenedores que se ejecutan en un Swarm.<\/p>\n<h3>Advanced Resource Management Techniques<\/h3>\n<p>Adem\u00e1s de los l\u00edmites b\u00e1sicos de recursos, Docker admite caracter\u00edsticas avanzadas para administrar los recursos de manera efectiva.<\/p>\n<h4>1. Cgroups<\/h4>\n<p>Docker utilizes Linux Control Groups (cgroups) for resource management. Cgroups allow you to allocate resources and enforce limits on a group of processes. While Docker handles cgroup configurations automatically, understanding how cgroups work can help you troubleshoot issues and optimize settings.<\/p>\n<h4>2. Monitoring and Alerts<\/h4>\n<p>Implement monitoring tools that can track resource usage over time and alert you when limits are approached. Tools like Prometheus and Grafana can be integrated with Docker to provide comprehensive insights into <span class=\"glossaryai-tooltip glossary-term-650\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\" target=\"_blank\">contenedor<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Containers are lightweight, portable units that encapsulate software and its dependencies, enabling consistent execution across different environments. They leverage OS-level virtualization for efficiency.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/container\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> actuaci\u00f3n.<\/p>\n<h4>3. Resource Limits in Docker Compose<\/h4>\n<p>When defining services in a <span class=\"glossaryai-tooltip glossary-term-689\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/docker-compose-file\/\" target=\"_blank\">Docker Compose file<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">Un archivo Docker Compose es un archivo de configuraci\u00f3n YAML que define servicios, redes y vol\u00famenes para aplicaciones Docker de m\u00faltiples contenedores. Simplifica el despliegue y la gesti\u00f3n, mejorando la eficiencia.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/docker-compose-file\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>, tambi\u00e9n puedes especificar los l\u00edmites de recursos directamente en el <span class=\"glossaryai-tooltip glossary-term-690\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/yaml\/\" target=\"_blank\">YAML<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">YAML (YAML Ain't Markup Language) es un formato de serializaci\u00f3n de datos legible por humanos que se utiliza com\u00fanmente para archivos de configuraci\u00f3n. Enfatiza la simplicidad y claridad, lo que lo hace adecuado tanto para desarrolladores como para no desarrolladores.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/yaml\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span> configuraci\u00f3n. Aqu\u00ed tienes un ejemplo:<\/p>\n<pre><code class=\"language-yaml\">versi\u00f3n: '3.8'\nservicios:\n  mi_aplicaci\u00f3n:\n    <span class=\"glossaryai-tooltip glossary-term-651\"><span class=\"glossaryai-link\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/image\/\" target=\"_blank\">imagen<\/a><\/span><span class=\"gai-content-hidden glossaryai-tooltip-content\"><span class=\"gai-tooltip-body\"><span class=\"glossaryai-tooltip-text\">An image is a visual representation of an object or scene, typically composed of pixels in digital formats. It can convey information, evoke emotions, and facilitate communication across various media.<span class=\"glossaryai-more-link\"> <a href=\"https:\/\/dockerpros.com\/es\/wiki\/image\/\">More \u00bb<\/a><\/span><\/span><\/span><\/span><\/span>: my_app_image\n    deploy:\n      resources:\n        limits:\n          cpus: '0.5'\n          memory: 512M<\/code><\/pre>\n<h3>Conclusi\u00f3n<\/h3>\n<p>Setting resource limits in Docker is a vital aspect of application management that ensures efficient resource utilization and maintains system stability. By leveraging CPU, memory, and I\/O constraints, you can create a more predictable and manageable environment for your applications. Understanding the nuances of each option and implementing best practices will enable you to harness the full potential of Docker without sacrificing performance.<\/p>\n<p>A medida que las aplicaciones nativas de la nube siguen creciendo en complejidad y escala, dominar la gesti\u00f3n de recursos en Docker ser\u00e1 cada vez m\u00e1s valioso. Con las t\u00e9cnicas y el monitoreo adecuados, puedes crear aplicaciones robustas, eficientes y escalables que puedan prosperar en un entorno contenerizado. Ya sea que est\u00e9s gestionando un pu\u00f1ado de contenedores u orquestando miles a trav\u00e9s de un cl\u00faster, la gesti\u00f3n efectiva de recursos es clave para tu \u00e9xito.<\/p>","protected":false},"excerpt":{"rendered":"<p>Establecer l\u00edmites de recursos en Docker es esencial para optimizar el rendimiento y evitar el acaparamiento de recursos. Utiliza indicadores como `\u2013memory`, `\u2013cpus` y `\u2013cpuset-cpus` al crear contenedores para gestionar de manera efectiva la asignaci\u00f3n de CPU y memoria.<\/p>","protected":false},"author":1,"featured_media":286,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22],"tags":[],"class_list":["post-225","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-optimization-and-best-practices"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How do I set resource limits in Docker? - Dockerpros<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dockerpros.com\/es\/optimizacion-y-buenas-practicas\/como-puedo-configurar-limites-de-recursos-en-docker\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How do I set resource limits in Docker? - Dockerpros\" \/>\n<meta property=\"og:description\" content=\"Setting resource limits in Docker is essential for optimizing performance and preventing resource hogging. Use flags like `--memory`, `--cpus`, and `--cpuset-cpus` when creating containers to manage CPU and memory allocation effectively.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dockerpros.com\/es\/optimizacion-y-buenas-practicas\/como-puedo-configurar-limites-de-recursos-en-docker\/\" \/>\n<meta property=\"og:site_name\" content=\"Dockerpros\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-21T11:45:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-set-resource-limits-in-docker_225.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"dockerpros\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"dockerpros\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/\"},\"author\":{\"name\":\"dockerpros\",\"@id\":\"https:\/\/dockerpros.com\/#\/schema\/person\/a9b4c3d7f7a8e2b072e77d47b382a3a4\"},\"headline\":\"How do I set resource limits in Docker?\",\"datePublished\":\"2024-07-21T11:45:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/\"},\"wordCount\":1045,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/dockerpros.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-set-resource-limits-in-docker_225.jpg\",\"articleSection\":[\"Optimization and Best Practices\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/\",\"url\":\"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/\",\"name\":\"How do I set resource limits in Docker? - Dockerpros\",\"isPartOf\":{\"@id\":\"https:\/\/dockerpros.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-set-resource-limits-in-docker_225.jpg\",\"datePublished\":\"2024-07-21T11:45:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#primaryimage\",\"url\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-set-resource-limits-in-docker_225.jpg\",\"contentUrl\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-set-resource-limits-in-docker_225.jpg\",\"width\":800,\"height\":600,\"caption\":\"how-do-i-set-resource-limits-in-docker-2\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dockerpros.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How do I set resource limits in Docker?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dockerpros.com\/#website\",\"url\":\"https:\/\/dockerpros.com\/\",\"name\":\"Dockerpros\",\"description\":\"DockerPros \u2013 Your Ultimate Docker Resource Hub\",\"publisher\":{\"@id\":\"https:\/\/dockerpros.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dockerpros.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/dockerpros.com\/#organization\",\"name\":\"Dockerpros\",\"url\":\"https:\/\/dockerpros.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/dockerpros.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/Dockerpros_logo_blanco.png\",\"contentUrl\":\"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/Dockerpros_logo_blanco.png\",\"width\":532,\"height\":114,\"caption\":\"Dockerpros\"},\"image\":{\"@id\":\"https:\/\/dockerpros.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/dockerpros.com\/#\/schema\/person\/a9b4c3d7f7a8e2b072e77d47b382a3a4\",\"name\":\"dockerpros\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/dockerpros.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/dockerpros.com\/wp-content\/litespeed\/avatar\/d13b9d4f101de1a7535b404e0c59affd.jpg?ver=1780577253\",\"contentUrl\":\"https:\/\/dockerpros.com\/wp-content\/litespeed\/avatar\/d13b9d4f101de1a7535b404e0c59affd.jpg?ver=1780577253\",\"caption\":\"dockerpros\"},\"sameAs\":[\"https:\/\/dockerpros.com\/\"],\"url\":\"https:\/\/dockerpros.com\/es\/author\/dockerpros\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Para establecer l\u00edmites de recursos en Docker, puedes utilizar las siguientes opciones al ejecutar un contenedor:\n\n1. **L\u00edmite de memoria:**\n   - `--memory` o `-m`: Especifica la cantidad m\u00e1xima de memoria que puede usar el contenedor. Por ejemplo:\n     ```\n     docker run -d --memory=512m nginx\n     ```\n     Esto limita el contenedor a 512 MB de memoria.\n\n2. **L\u00edmite de CPU:**\n   - `--cpus`: Especifica el n\u00famero de CPUs que puede usar el contenedor. Por ejemplo:\n     ```\n     docker run -d --cpus=2 nginx\n     ```\n     Esto limita el contenedor a usar 2 CPUs.\n\n3. **Prioridad de CPU:**\n   - `--cpu-shares`: Especifica la prioridad de CPU relativa del contenedor. Por ejemplo:\n     ```\n     docker run -d --cpu-shares=512 nginx\n     ```\n     Esto establece la prioridad de CPU del contenedor a 512.\n\n4. **L\u00edmite de disco:**\n   - `--storage-opt`: Especifica las opciones de almacenamiento para el contenedor. Por ejemplo:\n     ```\n     docker run -d --storage-opt size=10G nginx\n     ```\n     Esto limita el contenedor a usar 10 GB de almacenamiento.\n\n5. **L\u00edmite de red:**\n   - `--network`: Especifica la red a la que se conectar\u00e1 el contenedor. Por ejemplo:\n     ```\n     docker run -d --network=host nginx\n     ```\n     Esto conecta el contenedor a la red del host.\n\n6. **L\u00edmite de procesos:**\n   - `--pids-limit`: Especifica el n\u00famero m\u00e1ximo de procesos que puede crear el contenedor. Por ejemplo:\n     ```\n     docker run -d --pids-limit=100 nginx\n     ```\n     Esto limita el contenedor a crear 100 procesos.\n\n7. **L\u00edmite de memoria swap:**\n   - `--memory-swap`: Especifica la cantidad m\u00e1xima de memoria swap que puede usar el contenedor. Por ejemplo:\n     ```\n     docker run -d --memory-swap=1g nginx\n     ```\n     Esto limita el contenedor a usar 1 GB de memoria swap.\n\n8. **L\u00edmite de memoria y swap:**\n   - `--memory-reservation`: Especifica la cantidad de memoria que se reserva para el contenedor. Por ejemplo:\n     ```\n     docker run -d --memory-reservation=512m nginx\n     ```\n     Esto reserva 512 MB de memoria para el contenedor.\n\n9. **L\u00edmite de memoria y swap:**\n   - `--memory-swappiness`: Especifica el nivel de swappiness de la memoria del contenedor. Por ejemplo:\n     ```\n     docker run -d --memory-swappiness=0 nginx\n     ```\n     Esto establece el nivel de swappiness de la memoria del contenedor a 0.\n\n10. **L\u00edmite de memoria y swap:**\n    - `--memory-oom-kill-disable`: Desactiva la opci\u00f3n de matar procesos por falta de memoria. Por ejemplo:\n      ```\n      docker run -d --memory-oom-kill-disable nginx\n      ```\n      Esto desactiva la opci\u00f3n de matar procesos por falta de memoria.\n\nEstas son algunas de las opciones m\u00e1s comunes para establecer l\u00edmites de recursos en Docker. Puedes combinar varias opciones para establecer l\u00edmites m\u00e1s espec\u00edficos seg\u00fan tus necesidades.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dockerpros.com\/es\/optimizacion-y-buenas-practicas\/como-puedo-configurar-limites-de-recursos-en-docker\/","og_locale":"es_ES","og_type":"article","og_title":"How do I set resource limits in Docker? - Dockerpros","og_description":"Setting resource limits in Docker is essential for optimizing performance and preventing resource hogging. Use flags like `--memory`, `--cpus`, and `--cpuset-cpus` when creating containers to manage CPU and memory allocation effectively.","og_url":"https:\/\/dockerpros.com\/es\/optimizacion-y-buenas-practicas\/como-puedo-configurar-limites-de-recursos-en-docker\/","og_site_name":"Dockerpros","article_published_time":"2024-07-21T11:45:23+00:00","og_image":[{"width":800,"height":600,"url":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-set-resource-limits-in-docker_225.jpg","type":"image\/jpeg"}],"author":"dockerpros","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"dockerpros","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#article","isPartOf":{"@id":"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/"},"author":{"name":"dockerpros","@id":"https:\/\/dockerpros.com\/#\/schema\/person\/a9b4c3d7f7a8e2b072e77d47b382a3a4"},"headline":"How do I set resource limits in Docker?","datePublished":"2024-07-21T11:45:23+00:00","mainEntityOfPage":{"@id":"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/"},"wordCount":1045,"commentCount":0,"publisher":{"@id":"https:\/\/dockerpros.com\/#organization"},"image":{"@id":"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-set-resource-limits-in-docker_225.jpg","articleSection":["Optimization and Best Practices"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/","url":"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/","name":"Para establecer l\u00edmites de recursos en Docker, puedes utilizar las siguientes opciones al ejecutar un contenedor:\n\n1. **L\u00edmite de memoria:**\n   - `--memory` o `-m`: Especifica la cantidad m\u00e1xima de memoria que puede usar el contenedor. Por ejemplo:\n     ```\n     docker run -d --memory=512m nginx\n     ```\n     Esto limita el contenedor a 512 MB de memoria.\n\n2. **L\u00edmite de CPU:**\n   - `--cpus`: Especifica el n\u00famero de CPUs que puede usar el contenedor. Por ejemplo:\n     ```\n     docker run -d --cpus=2 nginx\n     ```\n     Esto limita el contenedor a usar 2 CPUs.\n\n3. **Prioridad de CPU:**\n   - `--cpu-shares`: Especifica la prioridad de CPU relativa del contenedor. Por ejemplo:\n     ```\n     docker run -d --cpu-shares=512 nginx\n     ```\n     Esto establece la prioridad de CPU del contenedor a 512.\n\n4. **L\u00edmite de disco:**\n   - `--storage-opt`: Especifica las opciones de almacenamiento para el contenedor. Por ejemplo:\n     ```\n     docker run -d --storage-opt size=10G nginx\n     ```\n     Esto limita el contenedor a usar 10 GB de almacenamiento.\n\n5. **L\u00edmite de red:**\n   - `--network`: Especifica la red a la que se conectar\u00e1 el contenedor. Por ejemplo:\n     ```\n     docker run -d --network=host nginx\n     ```\n     Esto conecta el contenedor a la red del host.\n\n6. **L\u00edmite de procesos:**\n   - `--pids-limit`: Especifica el n\u00famero m\u00e1ximo de procesos que puede crear el contenedor. Por ejemplo:\n     ```\n     docker run -d --pids-limit=100 nginx\n     ```\n     Esto limita el contenedor a crear 100 procesos.\n\n7. **L\u00edmite de memoria swap:**\n   - `--memory-swap`: Especifica la cantidad m\u00e1xima de memoria swap que puede usar el contenedor. Por ejemplo:\n     ```\n     docker run -d --memory-swap=1g nginx\n     ```\n     Esto limita el contenedor a usar 1 GB de memoria swap.\n\n8. **L\u00edmite de memoria y swap:**\n   - `--memory-reservation`: Especifica la cantidad de memoria que se reserva para el contenedor. Por ejemplo:\n     ```\n     docker run -d --memory-reservation=512m nginx\n     ```\n     Esto reserva 512 MB de memoria para el contenedor.\n\n9. **L\u00edmite de memoria y swap:**\n   - `--memory-swappiness`: Especifica el nivel de swappiness de la memoria del contenedor. Por ejemplo:\n     ```\n     docker run -d --memory-swappiness=0 nginx\n     ```\n     Esto establece el nivel de swappiness de la memoria del contenedor a 0.\n\n10. **L\u00edmite de memoria y swap:**\n    - `--memory-oom-kill-disable`: Desactiva la opci\u00f3n de matar procesos por falta de memoria. Por ejemplo:\n      ```\n      docker run -d --memory-oom-kill-disable nginx\n      ```\n      Esto desactiva la opci\u00f3n de matar procesos por falta de memoria.\n\nEstas son algunas de las opciones m\u00e1s comunes para establecer l\u00edmites de recursos en Docker. Puedes combinar varias opciones para establecer l\u00edmites m\u00e1s espec\u00edficos seg\u00fan tus necesidades.","isPartOf":{"@id":"https:\/\/dockerpros.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#primaryimage"},"image":{"@id":"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-set-resource-limits-in-docker_225.jpg","datePublished":"2024-07-21T11:45:23+00:00","breadcrumb":{"@id":"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#primaryimage","url":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-set-resource-limits-in-docker_225.jpg","contentUrl":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/how-do-i-set-resource-limits-in-docker_225.jpg","width":800,"height":600,"caption":"how-do-i-set-resource-limits-in-docker-2"},{"@type":"BreadcrumbList","@id":"https:\/\/dockerpros.com\/optimization-and-best-practices\/how-do-i-set-resource-limits-in-docker\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dockerpros.com\/"},{"@type":"ListItem","position":2,"name":"How do I set resource limits in Docker?"}]},{"@type":"WebSite","@id":"https:\/\/dockerpros.com\/#website","url":"https:\/\/dockerpros.com\/","name":"Profesionales de Docker","description":"DockerPros \u2013 Tu centro definitivo de recursos Docker","publisher":{"@id":"https:\/\/dockerpros.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dockerpros.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/dockerpros.com\/#organization","name":"Profesionales de Docker","url":"https:\/\/dockerpros.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/dockerpros.com\/#\/schema\/logo\/image\/","url":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/Dockerpros_logo_blanco.png","contentUrl":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/Dockerpros_logo_blanco.png","width":532,"height":114,"caption":"Dockerpros"},"image":{"@id":"https:\/\/dockerpros.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/dockerpros.com\/#\/schema\/person\/a9b4c3d7f7a8e2b072e77d47b382a3a4","name":"profesionales de Docker","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/dockerpros.com\/#\/schema\/person\/image\/","url":"https:\/\/dockerpros.com\/wp-content\/litespeed\/avatar\/d13b9d4f101de1a7535b404e0c59affd.jpg?ver=1780577253","contentUrl":"https:\/\/dockerpros.com\/wp-content\/litespeed\/avatar\/d13b9d4f101de1a7535b404e0c59affd.jpg?ver=1780577253","caption":"dockerpros"},"sameAs":["https:\/\/dockerpros.com\/"],"url":"https:\/\/dockerpros.com\/es\/author\/dockerpros\/"}]}},"_links":{"self":[{"href":"https:\/\/dockerpros.com\/es\/wp-json\/wp\/v2\/posts\/225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dockerpros.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dockerpros.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dockerpros.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dockerpros.com\/es\/wp-json\/wp\/v2\/comments?post=225"}],"version-history":[{"count":0,"href":"https:\/\/dockerpros.com\/es\/wp-json\/wp\/v2\/posts\/225\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dockerpros.com\/es\/wp-json\/wp\/v2\/media\/286"}],"wp:attachment":[{"href":"https:\/\/dockerpros.com\/es\/wp-json\/wp\/v2\/media?parent=225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dockerpros.com\/es\/wp-json\/wp\/v2\/categories?post=225"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dockerpros.com\/es\/wp-json\/wp\/v2\/tags?post=225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}