{"id":474,"date":"2023-06-19T13:39:43","date_gmt":"2023-06-19T13:39:43","guid":{"rendered":"https:\/\/aidomoticssystems.com\/?p=474"},"modified":"2023-06-22T18:57:43","modified_gmt":"2023-06-22T18:57:43","slug":"tutorial-docker-compose","status":"publish","type":"post","link":"https:\/\/aidomoticssystems.com\/index.php\/2023\/06\/19\/tutorial-docker-compose\/","title":{"rendered":"Tutorial Docker Compose"},"content":{"rendered":"<h2>Introducci\u00f3n al Tutorial Docker Compose<\/h2>\n<p>Docker Compose es una herramienta que permite definir y administrar aplicaciones multi-contenedor de manera sencilla. Su principal objetivo es simplificar el despliegue y la gesti\u00f3n de servicios en un entorno de contenedores. Con Compose, puedes describir la configuraci\u00f3n de tus servicios en un archivo YAML y luego utilizar ese archivo para crear y ejecutar todos los contenedores necesarios con un solo comando.<\/p>\n<h2>El papel de Docker Compose en la orquestaci\u00f3n de contenedores<\/h2>\n<p>La orquestaci\u00f3n de contenedores es un desaf\u00edo clave en el mundo de la infraestructura moderna. A medida que las aplicaciones se vuelven m\u00e1s complejas y dependen de m\u00faltiples componentes interconectados, se vuelve necesario gestionar y coordinar los contenedores de manera eficiente. Aqu\u00ed es donde Docker Compose desempe\u00f1a un papel fundamental.<\/p>\n<p>Docker Compose act\u00faa como una herramienta de orquestaci\u00f3n liviana y de f\u00e1cil uso que simplifica la administraci\u00f3n de aplicaciones multi-contenedor. Su enfoque se centra en la definici\u00f3n y configuraci\u00f3n de servicios en un archivo YAML legible y estructurado. Esto permite a los desarrolladores y administradores de sistemas describir los servicios, las im\u00e1genes, las dependencias y las configuraciones necesarias para que la aplicaci\u00f3n funcione correctamente.<\/p>\n<p>Una de las ventajas principales de Docker Compose es que permite definir y gestionar la infraestructura de una aplicaci\u00f3n en su totalidad, en lugar de tratar los contenedores de forma aislada. Esto significa que puedes definir la relaci\u00f3n entre los distintos componentes de tu aplicaci\u00f3n y asegurarte de que se ejecuten en el orden correcto. Por ejemplo, si tu aplicaci\u00f3n web depende de una base de datos, puedes utilizar la clave <code>depends_on<\/code> en el archivo YAML para indicar que la base de datos debe iniciarse antes de que se inicie la aplicaci\u00f3n web.<\/p>\n<p>Adem\u00e1s, Docker Compose facilita la configuraci\u00f3n de redes y vol\u00famenes compartidos entre los contenedores. Cuando defines tus servicios en el archivo YAML, Compose crea una red compartida por defecto y asigna nombres de host a los contenedores. Esto permite que los contenedores se comuniquen entre s\u00ed utilizando los nombres de host como identificadores, lo que simplifica la configuraci\u00f3n y evita problemas de comunicaci\u00f3n.<\/p>\n<p>Otra caracter\u00edstica clave del tutorial Docker Compose es su capacidad para escalar servicios de forma sencilla. Puedes especificar el n\u00famero de r\u00e9plicas de un servicio en el archivo YAML, y Compose, a trav\u00e9s del tutorial Docker Compose, se encargar\u00e1 de crear y administrar autom\u00e1ticamente las r\u00e9plicas adicionales. Esto es especialmente \u00fatil cuando necesitas manejar cargas de trabajo variables o distribuir la carga en varios contenedores para mejorar el rendimiento y la disponibilidad de tu aplicaci\u00f3n.<\/p>\n<p>En resumen, Docker Compose juega un papel crucial en la orquestaci\u00f3n de contenedores al proporcionar una forma sencilla y declarativa de definir y gestionar servicios multi-contenedor. Con su archivo YAML legible y su enfoque en la infraestructura como c\u00f3digo, Compose simplifica el despliegue y la gesti\u00f3n de aplicaciones complejas. Ya sea configurando dependencias, estableciendo redes compartidas o escalando servicios, Este tutorial Docker Compose te ser\u00e1 una herramienta imprescindible para la orquestaci\u00f3n eficiente de contenedores.<\/p>\n<h2>Tutorial Docker Compose: Comandos mas \u00fatiles<\/h2>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">version<\/a><\/p>\n<p>Especifica la versi\u00f3n de Docker Compose que se utilizar\u00e1 en el archivo YAML.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">services<\/a><\/p>\n<p>Define la secci\u00f3n de servicios en el archivo YAML, donde se definen los servicios de contenedores.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">image<\/a><\/p>\n<p>Especifica la imagen base del contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">build<\/a><\/p>\n<p>Permite construir una imagen personalizada del contenedor en funci\u00f3n de un Dockerfile especificado.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">ports<\/a><\/p>\n<p>Define los puertos expuestos y c\u00f3mo se mapean a los puertos del host.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">volumes<\/a><\/p>\n<p>Especifica los vol\u00famenes que se montar\u00e1n en el contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">environment<\/a><\/p>\n<p>Define las variables de entorno utilizadas por el contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">env_file<\/a><\/p>\n<p>Lee las variables de entorno desde un archivo externo y las pasa al contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">cap_add<\/a><\/p>\n<p>Agrega capacidades adicionales al contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">cap_drop<\/a><\/p>\n<p>Elimina capacidades del contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">cgroup_parent<\/a><\/p>\n<p>Especifica el controlador de grupo de control en el que se ejecutar\u00e1 el contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">container_name<\/a><\/p>\n<p>Establece un nombre personalizado para el contenedor en lugar de utilizar un nombre generado autom\u00e1ticamente.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">domainname<\/a><\/p>\n<p>Establece el nombre de dominio DNS para el contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">hostname<\/a><\/p>\n<p>Establece el nombre de host para el contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">ipc<\/a><\/p>\n<p>Configura el espacio de IPC para el contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">mac_address<\/a><\/p>\n<p>Establece la direcci\u00f3n MAC del adaptador de red del contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">dns_search<\/a><\/p>\n<p>Configura los dominios de b\u00fasqueda DNS para el contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">security_opt<\/a><\/p>\n<p>Configura opciones de seguridad para el contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">stop_signal<\/a><\/p>\n<p>Especifica la se\u00f1al que se utilizar\u00e1 para detener el contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">stop_grace_period<\/a><\/p>\n<p>Establece el tiempo de gracia antes de forzar la terminaci\u00f3n del contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">networks<\/a><\/p>\n<p>Crea y configura redes personalizadas para permitir la comunicaci\u00f3n entre los contenedores.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">depends_on<\/a><\/p>\n<p>Establece dependencias entre servicios para controlar el orden de inicio.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">restart<\/a><\/p>\n<p>Configura la pol\u00edtica de reinicio para el servicio en caso de fallos.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">command<\/a><\/p>\n<p>Sobrescribe el comando de inicio predeterminado del contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">entrypoint<\/a><\/p>\n<p>Sobrescribe el punto de entrada predeterminado del contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">volumes_from<\/a><\/p>\n<p>Monta vol\u00famenes desde otro contenedor en el contenedor actual.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">links<\/a><\/p>\n<p>Establece conexiones de red entre contenedores.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">expose<\/a><\/p>\n<p>Expone un puerto sin realizar el mapeo al host.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">external_links<\/a><\/p>\n<p>Establece conexiones de red con contenedores externos.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">tmpfs<\/a><\/p>\n<p>Monta un sistema de archivos temporal en el contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">extra_hosts<\/a><\/p>\n<table>\n<tbody>\n<tr>\n<td>Agrega anfitriones adicionales al archivo de hosts del contenedor.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">pid<\/a><\/p>\n<p>Configura el espacio de PID para el contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">privileged<\/a><\/p>\n<table>\n<tbody>\n<tr>\n<td>Otorga al contenedor acceso a todos los dispositivos en el host.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">read_only<\/a><\/p>\n<p>Monta el sistema de archivos ra\u00edz del contenedor como solo lectura.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">user<\/a><\/p>\n<p>Especifica el usuario o UID que se utilizar\u00e1 al ejecutar el contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">working_dir<\/a><\/p>\n<table>\n<tbody>\n<tr>\n<td>Establece el directorio de trabajo dentro del contenedor.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">healthcheck<\/a><\/p>\n<p>Configura un comando de verificaci\u00f3n de estado para el contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">network_mode<\/a><\/p>\n<p>Establece el modo de red para el contenedor.<\/p>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 192 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<a tabindex=\"0\">dns<\/a><\/p>\n<p>Configura los servidores DNS para el contenedor.<\/p>\n<p>Recuerda que estos comandos se utilizan en el archivo YAML de Docker Compose para definir y configurar servicios de contenedores. Puedes consultar la documentaci\u00f3n oficial de<a href=\"https:\/\/docs.docker.com\/compose\/\" target=\"_blank\" rel=\"noopener\"> Docker Compose<\/a> para obtener m\u00e1s detalles y opciones avanzadas sobre cada comando. En este tutorial docker compose te hemos expuesto los mas importantes.<\/p>\n<h2>Tutorial Docker Compose: Creaci\u00f3n de servicios utilizando un archivo YAML<\/h2>\n<p>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"640\" height=\"427\" src=\"https:\/\/aidomoticssystems.com\/wp-content\/uploads\/2023\/06\/magine-an-image-that-visually-and-creatively-represents-the-spread-of-knowledge-about-docker-compose-.png\" alt=\"Contenedores enlazados representando la potencia de Docker Compose\" loading=\"lazy\" srcset=\"https:\/\/aidomoticssystems.com\/wp-content\/uploads\/2023\/06\/magine-an-image-that-visually-and-creatively-represents-the-spread-of-knowledge-about-docker-compose-.png 768w, https:\/\/aidomoticssystems.com\/wp-content\/uploads\/2023\/06\/magine-an-image-that-visually-and-creatively-represents-the-spread-of-knowledge-about-docker-compose--300x200.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/p>\n<p>La creaci\u00f3n y configuraci\u00f3n de servicios con Docker Compose se realiza a trav\u00e9s de un archivo YAML. Este archivo te permite definir los servicios de tu aplicaci\u00f3n, sus im\u00e1genes base, los vol\u00famenes, las variables de entorno y cualquier otra configuraci\u00f3n necesaria. Puedes utilizar palabras clave como <code>services<\/code>, <code>image<\/code>, <code>volumes<\/code> y <code>environment<\/code> para especificar los detalles de cada servicio. Adem\u00e1s, puedes establecer la dependencia entre servicios utilizando la clave <code>depends_on<\/code>, lo que garantiza que los contenedores se creen en el orden correcto. Veamos en este tutorial docker compose, c\u00f3mo se realiza este proceso:<\/p>\n<ul>\n<li>\n<p><strong>Definici\u00f3n del servicio<\/strong>: Para comenzar, debes definir el servicio en el archivo <strong>YAML<\/strong> utilizando la clave <strong><code>services<\/code><\/strong>. Por ejemplo, si est\u00e1s creando un servicio para una base de datos <a href=\"https:\/\/www.mysql.com\" target=\"_blank\" rel=\"noopener\">MySQL<\/a>, puedes llamarlo &#8220;mysql&#8221; y comenzar su definici\u00f3n de la siguiente manera:<\/p>\n<\/li>\n<\/ul>\n<pre data-line=\"\">\n\t\t\t\t<code readonly=\"true\">\n\t\t\t\t\t<xmp>\nservices:\n  mysql:<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n<ul>\n<li><strong>Imagen del contenedor<\/strong>: Luego, debes especificar la imagen base del contenedor. Puedes usar una imagen existente de <a href=\"https:\/\/hub.docker.com\/_\/mysql\/tags\" target=\"_blank\" rel=\"noopener\">Docker Hub<\/a> o una imagen personalizada que hayas creado. Por ejemplo, si deseas utilizar la imagen oficial de MySQL, puedes agregar lo siguiente a la definici\u00f3n del servicio:<\/li>\n<\/ul>\n<pre data-line=\"\">\n\t\t\t\t<code readonly=\"true\">\n\t\t\t\t\t<xmp>\nservices:\n  mysql:\n    image: mysql:latest\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n<ul>\n<li><strong>Configuraci\u00f3n adicional<\/strong>: Dependiendo de tus necesidades, puedes agregar configuraciones adicionales al servicio. Esto incluye cosas como variables de entorno, puertos expuestos, vol\u00famenes montados, entre otros. Por ejemplo, para especificar un puerto expuesto y un volumen montado en el servicio de MySQL, puedes agregar lo siguiente:<\/li>\n<\/ul>\n<pre data-line=\"\">\n\t\t\t\t<code readonly=\"true\">\n\t\t\t\t\t<xmp>\nservices:\n  mysql:\n    image: mysql:latest\n    ports:\n      - 3306:3306\n    volumes:\n      - .\/data:\/var\/lib\/mysql\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n<ul>\n<li><strong>Dependencias entre servicios<\/strong>: Si tu aplicaci\u00f3n requiere que los servicios se inicien en un orden espec\u00edfico debido a dependencias, puedes utilizar la clave <code>depends_on<\/code> para definir estas relaciones. Por ejemplo, si tienes un servicio web que depende del servicio de MySQL, puedes establecer la dependencia de la siguiente manera:<\/li>\n<\/ul>\n<pre data-line=\"\">\n\t\t\t\t<code readonly=\"true\">\n\t\t\t\t\t<xmp>\nservices:\n  web:\n    build: .\n    depends_on:\n      - mysql\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n<h2>Tutorial Docker Compose: Configuraci\u00f3n de servicios utilizando un archivo YAML<\/h2>\n<p>Una vez que has creado tus servicios en el archivo YAML, puedes configurarlos de acuerdo con tus necesidades espec\u00edficas. Aqu\u00ed hay algunos ejemplos de configuraciones comunes:<\/p>\n<ul>\n<li>\n<p><strong>Variables de entorno<\/strong>: Puedes definir variables de entorno que ser\u00e1n utilizadas por el contenedor. Estas variables pueden contener informaci\u00f3n sensible o configuraciones personalizadas. Por ejemplo, si deseas configurar una variable de entorno <strong><code>DB_PASSWORD<\/code><\/strong> para el servicio de MySQL, puedes agregar lo siguiente:<\/p>\n<\/li>\n<\/ul>\n<pre data-line=\"\">\n\t\t\t\t<code readonly=\"true\">\n\t\t\t\t\t<xmp>\nservices:\n  mysql:\n    image: mysql:latest\n    environment:\n      - MYSQL_ROOT_PASSWORD=mysecretpassword\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n<ul>\n<li><strong>Redes<\/strong>: Puedes crear y configurar redes personalizadas para tus servicios. Esto permite que los contenedores se comuniquen entre s\u00ed dentro de la misma red. Por ejemplo, puedes crear una red llamada &#8220;myapp-network&#8221; y agregar los servicios a esa red de la siguiente manera:<\/li>\n<\/ul>\n<pre data-line=\"\">\n\t\t\t\t<code readonly=\"true\">\n\t\t\t\t\t<xmp>\nservices:\n  mysql:\n    image: mysql:latest\n    networks:\n      - myapp-network\nnetworks:\n  myapp-network:\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n<h2>Tutorial Docker Compose: Uso de Docker Compose para orquestar m\u00faltiples contenedores <\/h2>\n<p>El uso de Docker Compose para orquestar m\u00faltiples contenedores es una de las caracter\u00edsticas clave de esta herramienta. Te proporcionar\u00e9 algunos ejemplos comunes de c\u00f3mo puedes utilizar Docker Compose para gestionar y coordinar m\u00faltiples contenedores.<\/p>\n<ul>\n<li>\n<p><strong>Aplicaci\u00f3n web con backend y base de datos<\/strong>: Imagina que est\u00e1s desarrollando una aplicaci\u00f3n web que consta de un frontend, un backend y una base de datos. Puedes utilizar Docker Compose para configurar y ejecutar f\u00e1cilmente los tres contenedores de manera conjunta. Por ejemplo:<\/p>\n<p>\u00a0<\/li>\n<\/ul>\n<pre data-line=\"\">\n\t\t\t\t<code readonly=\"true\">\n\t\t\t\t\t<xmp>\nversion: '3'\nservices:\n  frontend:\n    build: .\/frontend\n    ports:\n      - 80:80\n  backend:\n    build: .\/backend\n    depends_on:\n      - database\n  database:\n    image: mysql:latest\n    environment:\n      - MYSQL_ROOT_PASSWORD=secret\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n<p>En este ejemplo, tienes tres servicios: <strong><code>frontend<\/code><\/strong>, <strong><code>backend<\/code><\/strong> y <strong><code>database<\/code><\/strong>. Docker Compose se encarga de construir las im\u00e1genes y gestionar las dependencias entre ellos. El frontend se expone en el puerto 80 del host, el backend depende de la base de datos MySQL y la base de datos se configura con una contrase\u00f1a de root.<\/p>\n<ul>\n<li>\n<p><strong>Entorno de desarrollo completo<\/strong>: Docker Compose tambi\u00e9n es \u00fatil para crear un entorno de desarrollo completo con m\u00faltiples servicios. Puedes definir diferentes servicios para cada componente necesario, como una base de datos, un servidor web, un servidor de aplicaciones, etc. Por ejemplo:<\/p>\n<\/li>\n<\/ul>\n<pre data-line=\"\">\n\t\t\t\t<code readonly=\"true\">\n\t\t\t\t\t<xmp>\nversion: '3'\nservices:\n  web:\n    build: .\/web\n    ports:\n      - 80:80\n    volumes:\n      - .\/web:\/app\n  database:\n    image: mysql:latest\n    environment:\n      - MYSQL_ROOT_PASSWORD=secret\n    volumes:\n      - db_data:\/var\/lib\/mysql\n  server:\n    build: .\/server\n    ports:\n      - 8080:8080\nvolumes:\n  db_data:\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n<p>En este ejemplo, tienes tres servicios: <strong><code>web<\/code><\/strong>, <code><strong>database<\/strong><\/code> y <code><strong>server<\/strong><\/code>. El servicio <code>web<\/code> es un servidor web, el servicio <strong><code>database<\/code><\/strong> utiliza la imagen MySQL y el servicio <strong><code>server<\/code><\/strong> es un servidor de aplicaciones. Tambi\u00e9n se crea un volumen llamado <strong><code>db_data<\/code><\/strong> para persistir los datos de la base de datos.<\/p>\n<p><strong>Stack de microservicios<\/strong>: Docker Compose es ideal para orquestar un stack de microservicios, donde cada microservicio se ejecuta en su propio contenedor. Puedes definir servicios independientes para cada microservicio y conectarlos a trav\u00e9s de redes personalizadas. Por ejemplo:<\/p>\n<pre data-line=\"\">\n\t\t\t\t<code readonly=\"true\">\n\t\t\t\t\t<xmp>\nversion: '3'\nservices:\n  service1:\n    build: .\/service1\n    networks:\n      - backend\n  service2:\n    build: .\/service2\n    networks:\n      - backend\n  service3:\n    build: .\/service3\n    networks:\n      - backend\nnetworks:\n  backend:\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n<ul>\n<li>\n<p>En este ejemplo, tienes tres servicios: <strong><code>service1<\/code><\/strong>, <strong><code>service2<\/code><\/strong> y <code><strong>service3<\/strong><\/code>. Todos los servicios se conectan a una red llamada <code><strong>backend<\/strong><\/code>, lo que les permite comunicarse entre s\u00ed.<\/p>\n<\/li>\n<\/ul>\n<p>Estos ejemplos ilustran c\u00f3mo puedes utilizar Docker Compose para orquestar m\u00faltiples contenedores y crear entornos de desarrollo completos o stacks de microservicios. Puedes personalizar y ajustar la configuraci\u00f3n seg\u00fan tus necesidades espec\u00edficas utilizando los comandos<\/p>\n<h2>Men\u00fa del curso: Selecciona contenido ha aprender<\/h2>\n<link rel=\"stylesheet\" href=\"https:\/\/aidomoticssystems.com\/wp-content\/plugins\/pro-elements\/assets\/css\/widget-share-buttons.min.css\">\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\tFacebook<br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\tTwitter<br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\tLinkedIn<br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 496 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\tTelegram<br \/>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 496 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"><\/path><\/svg><br \/>\n\t\t\t\t\t\t\t\t\t\tPinterest<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tutorial Docker Compose : Descubre Docker Compose en este completo tutorial que te guiar\u00e1 en la orquestaci\u00f3n de contenedores.&#8221;<\/p>\n","protected":false},"author":1,"featured_media":475,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[261,262],"tags":[295,301,300,302,294,299,298,297,296],"class_list":["post-474","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cursos","category-docker","tag-container-orchestration","tag-docker-compose-ejemplos","tag-docker-compose-examples","tag-docker-compose-setup","tag-docker-compose-tutorial","tag-docker-networking","tag-microservices-deployment","tag-multiple-containers","tag-yaml-configuration"],"_links":{"self":[{"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/posts\/474","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/comments?post=474"}],"version-history":[{"count":23,"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/posts\/474\/revisions"}],"predecessor-version":[{"id":534,"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/posts\/474\/revisions\/534"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/media\/475"}],"wp:attachment":[{"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/media?parent=474"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/categories?post=474"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aidomoticssystems.com\/index.php\/wp-json\/wp\/v2\/tags?post=474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}