{"id":2260,"date":"2017-01-04T00:29:47","date_gmt":"2017-01-04T00:29:46","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2260"},"modified":"2023-06-21T06:44:16","modified_gmt":"2023-06-21T13:44:16","slug":"couchbase-cluster-docker-swarm-compose-machine","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-cluster-docker-swarm-compose-machine\/","title":{"rendered":"Cluster Couchbase en Docker Swarm usando Docker Compose y Docker Machine"},"content":{"rendered":"<p>Esta entrada del blog explicar\u00e1 c\u00f3mo crear y escalar un cl\u00faster Couchbase utilizando la armadura completa de Docker - Docker Machine, <a href=\"https:\/\/www.couchbase.com\/blog\/es\/deploy-docker-compose-services-swarm\/\">Docker Swarm y Docker Compose<\/a>. Esto es lo que haremos:<\/p>\n<ul>\n<li>Crear un cl\u00faster Docker Swarm de 3 nodos utilizando Docker Machine<\/li>\n<li>Ejecutar una instancia de Couchbase en dos nodos<\/li>\n<li>Crear un cl\u00faster<\/li>\n<li>Reequilibrar el cl\u00faster<\/li>\n<li>Escalar y reequilibrar de nuevo el cl\u00faster<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2802\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/01\/couchbase-docker-swarm-0-1024x558.png\" alt=\" couchbase-docker-swarm-0-1024x558\" width=\"1024\" height=\"558\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/couchbase-docker-swarm-0-1024x558.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/couchbase-docker-swarm-0-1024x558-300x163.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/couchbase-docker-swarm-0-1024x558-768x419.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/couchbase-docker-swarm-0-1024x558-20x11.png 20w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h2>Cl\u00faster Docker Swarm usando Consul<\/h2>\n<p>Cree un cl\u00faster Docker Swarm de tres nodos utilizando Docker Machine:<\/p>\n<pre class=\"lang:default decode:true\"># Docker Machine for Consul\r\ndocker-machine \r\n   create \r\n   -d virtualbox \r\n   consul-machine\r\n\r\n# Start Consul\r\ndocker $(docker-machine config consul-machine) run -d --restart=always \r\n         -p \"8500:8500\" \r\n         -h \"consul\" \r\n         progrium\/consul -server -bootstrap\r\n\r\n# Docker Swarm master\r\ndocker-machine \r\n  create \r\n  -d virtualbox \r\n  --swarm \r\n  --swarm-master \r\n  --swarm-discovery=\"consul:\/\/$(docker-machine ip consul-machine):8500\" \r\n  --engine-opt=\"cluster-store=consul:\/\/$(docker-machine ip consul-machine):8500\" \r\n  --engine-opt=\"cluster-advertise=eth1:2376\" \r\n  swarm-master\r\n\r\n# Docker Swarm node-01\r\ndocker-machine \r\n  create \r\n  -d virtualbox \r\n  --swarm \r\n  --swarm-discovery=\"consul:\/\/$(docker-machine ip consul-machine):8500\" \r\n  --engine-opt=\"cluster-store=consul:\/\/$(docker-machine ip consul-machine):8500\" \r\n  --engine-opt=\"cluster-advertise=eth1:2376\" \r\n  swarm-node-01\r\n\r\n# Docker Swarm node-02\r\ndocker-machine \r\n  create \r\n  -d virtualbox \r\n  --virtualbox-disk-size \"5000\" \r\n  --swarm \r\n  --swarm-discovery=\"consul:\/\/$(docker-machine ip consul-machine):8500\" \r\n  --engine-opt=\"cluster-store=consul:\/\/$(docker-machine ip consul-machine):8500\" \r\n  --engine-opt=\"cluster-advertise=eth1:2376\" \r\n  swarm-node-02\r\n\r\n# Configure to use Docker Swarm cluster\r\neval \"$(docker-machine env --swarm swarm-master)\"<\/pre>\n<p><a href=\"https:\/\/docs.docker.com\/swarm\/provision-with-machine\/\">Aprovisionar un cl\u00faster Swarm con Docker Machine<\/a>\u00a0proporcionan m\u00e1s detalles sobre por qu\u00e9 y qu\u00e9 se hace en este script. He aqu\u00ed un resumen:<\/p>\n<ul>\n<li>Crear una m\u00e1quina Docker y ejecutar Consul para el descubrimiento de servicios<\/li>\n<li>Cree tres m\u00e1quinas Docker: una para el nodo maestro y dos para los nodos de trabajo. Cada m\u00e1quina se configura para formar parte de un cl\u00faster Swarm utilizando <code>--swarm<\/code>. Tambi\u00e9n utiliza el descubrimiento de servicios Consul especificado mediante <code>--swarm-discovery<\/code>.<\/li>\n<\/ul>\n<h2>Nodos Couchbase en Docker Swarm<\/h2>\n<p>Crea dos instancias de Couchbase usando Docker Compose:<\/p>\n<pre class=\"lang:default decode:true\">version: \"2\"\r\nservices:\r\n  db:\r\n    image: arungupta\/couchbase\r\n    network_mode: \"host\"\r\n    ports:\r\n      - 8091:8091\r\n      - 8092:8092\r\n      - 8093:8093\r\n      - 11210:11210<\/pre>\n<p><code>arungupta\/couchbase<\/code> se utiliza aqu\u00ed. Esta imagen se define en\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/docker-images\/tree\/master\/couchbase\">Imagen Docker de Couchbase.<\/a>\u00a0Utiliza el\u00a0<a href=\"https:\/\/hub.docker.com\/_\/couchbase\/\">Imagen Docker oficial de Couchbase<\/a>\u00a0a\u00f1ada<br \/>\nlo configura como se ha explicado:<\/p>\n<ol>\n<li>Configura la memoria para \u00edndice y datos<\/li>\n<li>Configura el servidor Couchbase con el servicio de \u00edndices, datos y consultas.<\/li>\n<li>Establece las credenciales de nombre de usuario y contrase\u00f1a<\/li>\n<li>Carga el <code>viaje-muestra<\/code> cubo<\/li>\n<\/ol>\n<p>El archivo Compose utiliza <code>host<\/code> red. Esto equivale a utilizar <code>--net=host<\/code> en docker run CLI. Permite que el contenedor utilice la pila de red del host. Tambi\u00e9n limita la ejecuci\u00f3n de un \u00fanico contenedor Couchbase en<br \/>\nuna sola m\u00e1quina Docker. Esto significa que nuestro cluster Couchbase puede escalar basado en el n\u00famero de m\u00e1quinas Docker - 3 en nuestro caso. El comando exacto para usar este archivo Compose es:<\/p>\n<pre class=\"lang:default decode:true\">docker-compose scale db=2\r\nWARNING: The \"db\" service specifies a port on the host. If multiple containers for this service are created on a single host, the port will clash.\r\nCreating and starting couchbasedockerswarm_db_1 ... \r\nCreating and starting couchbasedockerswarm_db_2 ... \r\nPulling db (arungupta\/couchbase:latest)...\r\nswarm-node-02: Pulling arungupta\/couchbase:latest...\r\nswarm-master: Pulling arungupta\/couchbase:latest...\r\nswarm-node-01: Pulling arungupta\/couchbase:latest...\r\nPulling db (arungupta\/couchbase:latest)...\r\nswarm-node-02: Pulling arungupta\/couchbase:latest... : downloaded\r\nCreating and starting couchbasedockerswarm_db_1 ... done\r\nCreating and starting couchbasedockerswarm_db_2 ... done<\/pre>\n<p>Hay tres nodos en el cl\u00faster Docker Swarm. El <a href=\"https:\/\/docs.docker.com\/swarm\/scheduler\/strategy\/\">estrategia de programaci\u00f3n por defecto<\/a> es <code>difundir<\/code> por lo que los contenedores estar\u00e1n repartidos en diferentes hosts. Esto es evidente<br \/>\npor <code>docker ps<\/code>:<\/p>\n<pre class=\"lang:default decode:true\">docker ps\r\nCONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS               NAMES\r\n4c8c149f4e34        arungupta\/couchbase   \"\/entrypoint.sh \/opt\/\"   44 seconds ago      Up 44 seconds                           swarm-node-02\/couchbasedockerswarm_db_1\r\nd3b6a1dbddb5        arungupta\/couchbase   \"\/entrypoint.sh \/opt\/\"   44 seconds ago      Up 44 seconds                           swarm-node-01\/couchbasedockerswarm_db_2<\/pre>\n<p>Tenga en cuenta que un servidor Couchbase se ejecuta en <code>nodo-enjambre-01<\/code> y otro en <code>enjambre-nodo-02<\/code>. Cada servidor est\u00e1 configurado con un nombre de usuario de administrador <code>Administrador<\/code> y contrase\u00f1a\u00a0<code>contrase\u00f1a<\/code>. Descubra IP<br \/>\ndirecci\u00f3n de la m\u00e1quina Docker:<\/p>\n<pre class=\"lang:default decode:true\">docker-machine ls\r\nNAME             ACTIVE      DRIVER       STATE     URL                         SWARM                   DOCKER    ERRORS\r\nconsul-machine   -           virtualbox   Running   tcp:\/\/192.168.99.106:2376                           v1.11.1   \r\ndefault          -           virtualbox   Running   tcp:\/\/192.168.99.100:2376                           v1.11.0   \r\nswarm-master     * (swarm)   virtualbox   Running   tcp:\/\/192.168.99.107:2376   swarm-master (master)   v1.11.1   \r\nswarm-node-01    -           virtualbox   Running   tcp:\/\/192.168.99.108:2376   swarm-master            v1.11.1   \r\nswarm-node-02    -           virtualbox   Running   tcp:\/\/192.168.99.109:2376   swarm-master            v1.11.1<\/pre>\n<p>Si tiene <a href=\"https:\/\/stedolan.github.io\/jq\/download\/\">jq instalado<\/a>\u00a0entonces la direcci\u00f3n IP se puede encontrar convenientemente como:<\/p>\n<pre class=\"lang:default decode:true\">docker-machine inspect swarm-node-01 | jq \".Driver.IPAddress\"\r\n\"192.168.99.108\"<\/pre>\n<h2>Cl\u00faster Couchbase en Docker Swarm<\/h2>\n<p>Todos los nodos del servidor Couchbase son iguales. Esto permite al cluster de Couchbase escalar horizontalmente para satisfacer las crecientes demandas de tu aplicaci\u00f3n. Se pueden a\u00f1adir nodos Couchbase independientes a un cluster invocando el comando <code>servidor-add<\/code> comando CLI. Normalmente, este proceso consta de dos pasos. El primer paso es a\u00f1adir uno o m\u00e1s nodos. El segundo paso reequilibra el cluster donde los datos en los nodos existentes se reequilibran a trav\u00e9s del cluster actualizado. En nuestro caso, un \u00fanico Couchbase<br \/>\nse est\u00e1 ejecutando en cada m\u00e1quina Docker. Vamos a elegir la direcci\u00f3n IP de cualquier nodo Couchbase, y a\u00f1adir la direcci\u00f3n IP del otro nodo:<\/p>\n<pre class=\"lang:default decode:true\">docker run -it arungupta\/couchbase \r\ncouchbase-cli \r\nserver-add \r\n--cluster=`docker-machine inspect swarm-node-01 | jq -r \".Driver.IPAddress\"`:8091 \r\n--user Administrator \r\n--password password \r\n--server-add=`docker-machine inspect swarm-node-02 | jq -r \".Driver.IPAddress\"` \r\n--server-add-username=Administrator \r\n--server-add-password=password\r\nSUCCESS: server-add 192.168.99.109:8091\r\n<\/pre>\n<p>Couchbase Web Console para ambos nodos mostrar\u00e1 una salida similar:<br \/>\n<a href=\"\/wp-content\/original-assets\/may-2016\/couchbase-cluster-on-docker-swarm-using-docker-compose-and-docker-machine\/couchbase-docker-swarm-1-1024x375.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13965\" src=\"\/wp-content\/original-assets\/may-2016\/couchbase-cluster-on-docker-swarm-using-docker-compose-and-docker-machine\/couchbase-docker-swarm-1-1024x375.png\" alt=\"couchbase-docker-swarm-1\" width=\"604\" height=\"221\" \/><\/a><br \/>\n<a href=\"\/wp-content\/original-assets\/may-2016\/couchbase-cluster-on-docker-swarm-using-docker-compose-and-docker-machine\/couchbase-docker-swarm-2-1024x519.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13966\" src=\"\/wp-content\/original-assets\/may-2016\/couchbase-cluster-on-docker-swarm-using-docker-compose-and-docker-machine\/couchbase-docker-swarm-2-1024x519.png\" alt=\"couchbase-docker-swarm-2\" width=\"604\" height=\"306\" \/><\/a><br \/>\nEsto muestra que los dos nodos forman ahora un cluster, y necesita ser reequilibrado.<\/p>\n<h2>Reequilibrio del cl\u00faster Couchbase<\/h2>\n<p>Ahora, vamos a reequilibrar el cl\u00faster:<\/p>\n<pre class=\"lang:default decode:true\">docker run -it arungupta\/couchbase couchbase-cli rebalance --cluster=`docker-machine inspect swarm-node-01 | jq -r \".Driver.IPAddress\"`:8091 --user Administrator --password password \r\nINFO: rebalancing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \r\nSUCCESS: rebalanced cluster<\/pre>\n<p>Couchbase Web Console se actualizar\u00e1 para mostrar que el reequilibrio est\u00e1 ocurriendo:<br \/>\n<a href=\"\/wp-content\/original-assets\/may-2016\/couchbase-cluster-on-docker-swarm-using-docker-compose-and-docker-machine\/couchbase-docker-swarm-3-1024x392.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13967\" src=\"\/wp-content\/original-assets\/may-2016\/couchbase-cluster-on-docker-swarm-using-docker-compose-and-docker-machine\/couchbase-docker-swarm-3-1024x392.png\" alt=\"couchbase-docker-swarm-3\" width=\"604\" height=\"231\" \/><\/a><br \/>\nY finalmente ver\u00e1s un cl\u00faster reequilibrado:<\/p>\n<p><a href=\"\/wp-content\/original-assets\/may-2016\/couchbase-cluster-on-docker-swarm-using-docker-compose-and-docker-machine\/couchbase-docker-swarm-4-1024x386.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13968\" src=\"\/wp-content\/original-assets\/may-2016\/couchbase-cluster-on-docker-swarm-using-docker-compose-and-docker-machine\/couchbase-docker-swarm-4-1024x386.png\" alt=\"couchbase-docker-swarm-4\" width=\"604\" height=\"228\" \/><\/a><\/p>\n<h2>Escalar y reequilibrar el cl\u00faster Couchbase<\/h2>\n<p>Escalar el cl\u00faster Couchbase:<\/p>\n<pre class=\"lang:default decode:true\">docker-compose scale db=3\r\nWARNING: The \"db\" service specifies a port on the host. If multiple containers for this service are created on a single host, the port will clash.\r\nCreating and starting couchbasedockerswarm_db_3 ... done<\/pre>\n<p>Compruebe que el contenedor se est\u00e1 ejecutando en una m\u00e1quina Docker diferente:<\/p>\n<pre class=\"lang:default decode:true\">docker ps\r\nCONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS               NAMES\r\n02f94e2bbd3e        arungupta\/couchbase   \"\/entrypoint.sh \/opt\/\"   9 seconds ago       Up 8 seconds                            swarm-master\/couchbasedockerswarm_db_3\r\n4c8c149f4e34        arungupta\/couchbase   \"\/entrypoint.sh \/opt\/\"   About an hour ago   Up About an hour                        swarm-node-02\/couchbasedockerswarm_db_1\r\nd3b6a1dbddb5        arungupta\/couchbase   \"\/entrypoint.sh \/opt\/\"   About an hour ago   Up About an hour                        swarm-node-01\/couchbasedockerswarm_db_2<\/pre>\n<p>Como se mencion\u00f3 anteriormente, escalar un cluster de Couchbase es un proceso de dos pasos. Esto es as\u00ed porque normalmente a\u00f1adir\u00e1s m\u00faltiples servidores y luego reequilibrar\u00e1s el cluster. Sin embargo, en casos donde solo necesitas a\u00f1adir un solo nodo Couchbase y luego rebalancear,<br \/>\nse puede utilizar el comando de reequilibrio para conseguirlo. En nuestro caso, esto se hace como se muestra:<\/p>\n<pre class=\"lang:default decode:true\">docker run -it arungupta\/couchbase couchbase-cli rebalance --cluster=`docker-machine inspect swarm-node-01 | jq -r \".Driver.IPAddress\"`:8091 --user Administrator --password password --server-add=`docker-machine inspect swarm-master | jq -r \".Driver.IPAddress\"` --server-add-username=Administrator --server-add-password=password\r\nSUCCESS: server-add 192.168.99.107:8091\r\nINFO: rebalancing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \r\nSUCCESS: rebalanced cluster<\/pre>\n<p>El cl\u00faster reequilibrado tiene ahora este aspecto:<br \/>\n<a href=\"\/wp-content\/original-assets\/may-2016\/couchbase-cluster-on-docker-swarm-using-docker-compose-and-docker-machine\/couchbase-docker-swarm-5-1024x409.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-13971\" src=\"\/wp-content\/original-assets\/may-2016\/couchbase-cluster-on-docker-swarm-using-docker-compose-and-docker-machine\/couchbase-docker-swarm-5-1024x409.png\" alt=\"couchbase-docker-swarm-5\" width=\"604\" height=\"241\" \/><\/a><\/p>\n<p>Este blog muestra c\u00f3mo se puede crear y escalar f\u00e1cilmente un cl\u00faster Couchbase utilizando Docker Swarm, Machine y Compose. \u00a1Que lo disfrutes! Lectura adicional ...<\/p>\n<ul>\n<li><a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/introduction\/intro.html\">Portal para desarrolladores de Couchbase Server<\/a><\/li>\n<li><a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/concepts\/concepts-intro.html\">Conceptos de Couchbase Server<\/a><\/li>\n<li><a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.1\/clustersetup\/manage-cluster-intro.html\">Configuraci\u00f3n del cl\u00faster Couchbase<\/a><\/li>\n<li>Preguntas sobre <a href=\"https:\/\/stackoverflow.com\/questions\/tagged\/couchbase\">StackOverflow,<\/a>\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/\">Foros<\/a>\u00a0o <a href=\"https:\/\/couchbase-community.slack.com\/\">Canal Slack<\/a><\/li>\n<li>S\u00edguenos en\u00a0<a href=\"https:\/\/twitter.com\/couchbasedev\">@couchbasedev<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/next\/\">Couchbase 4.5 Beta<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>This blog post will explain how to create and scale\u00a0a Couchbase Cluster using full armor of Docker &#8211; Docker Machine, Docker Swarm and Docker Compose. Here is what we&#8217;ll do: Create a 3-node Docker Swarm Cluster using Docker Machine Run\u00a0a [&hellip;]<\/p>","protected":false},"author":58,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816],"tags":[],"ppma_author":[8933],"class_list":["post-2260","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v26.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase Cluster using full armor of Docker swarm<\/title>\n<meta name=\"description\" content=\"The blog explains how to create and scale a Couchbase Cluster using full armor of Docker \u2013 Docker Machine, Docker Swarm and Docker Compose.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-cluster-docker-swarm-compose-machine\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Cluster on Docker Swarm using Docker Compose and Docker Machine\" \/>\n<meta property=\"og:description\" content=\"The blog explains how to create and scale a Couchbase Cluster using full armor of Docker \u2013 Docker Machine, Docker Swarm and Docker Compose.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-cluster-docker-swarm-compose-machine\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-04T00:29:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-21T13:44:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/01\/couchbase-docker-swarm-0-1024x558.png\" \/>\n<meta name=\"author\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@arungupta\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\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:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/\"},\"author\":{\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\"},\"headline\":\"Couchbase Cluster on Docker Swarm using Docker Compose and Docker Machine\",\"datePublished\":\"2017-01-04T00:29:46+00:00\",\"dateModified\":\"2023-06-21T13:44:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/\"},\"wordCount\":641,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/\",\"name\":\"Couchbase Cluster using full armor of Docker swarm\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-01-04T00:29:46+00:00\",\"dateModified\":\"2023-06-21T13:44:16+00:00\",\"description\":\"The blog explains how to create and scale a Couchbase Cluster using full armor of Docker \u2013 Docker Machine, Docker Swarm and Docker Compose.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Cluster on Docker Swarm using Docker Compose and Docker Machine\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\",\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"caption\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\"},\"description\":\"Arun Gupta is the vice president of developer advocacy at Couchbase. He has built and led developer communities for 10+ years at Sun, Oracle, and Red Hat. He has deep expertise in leading cross-functional teams to develop and execute strategy, planning and execution of content, marketing campaigns, and programs. Prior to that he led engineering teams at Sun and is a founding member of the Java EE team. Gupta has authored more than 2,000 blog posts on technology. He has extensive speaking experience in more than 40 countries on myriad topics and is a JavaOne Rock Star for three years in a row. Gupta also founded the Devoxx4Kids chapter in the US and continues to promote technology education among children. An author of several books on technology, an avid runner, a globe trotter, a Java Champion, a JUG leader, NetBeans Dream Team member, and a Docker Captain, he is easily accessible at @arungupta.\",\"sameAs\":[\"https:\/\/x.com\/arungupta\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/arun-gupta\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Cluster using full armor of Docker swarm","description":"The blog explains how to create and scale a Couchbase Cluster using full armor of Docker \u2013 Docker Machine, Docker Swarm and Docker Compose.","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:\/\/www.couchbase.com\/blog\/es\/couchbase-cluster-docker-swarm-compose-machine\/","og_locale":"es_MX","og_type":"article","og_title":"Couchbase Cluster on Docker Swarm using Docker Compose and Docker Machine","og_description":"The blog explains how to create and scale a Couchbase Cluster using full armor of Docker \u2013 Docker Machine, Docker Swarm and Docker Compose.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/couchbase-cluster-docker-swarm-compose-machine\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-01-04T00:29:46+00:00","article_modified_time":"2023-06-21T13:44:16+00:00","og_image":[{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/01\/couchbase-docker-swarm-0-1024x558.png","type":"","width":"","height":""}],"author":"Arun Gupta, VP, Developer Advocacy, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@arungupta","twitter_misc":{"Written by":"Arun Gupta, VP, Developer Advocacy, Couchbase","Est. reading time":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/"},"author":{"name":"Arun Gupta, VP, Developer Advocacy, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f"},"headline":"Couchbase Cluster on Docker Swarm using Docker Compose and Docker Machine","datePublished":"2017-01-04T00:29:46+00:00","dateModified":"2023-06-21T13:44:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/"},"wordCount":641,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Server"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/","name":"Couchbase Cluster using full armor of Docker swarm","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-01-04T00:29:46+00:00","dateModified":"2023-06-21T13:44:16+00:00","description":"The blog explains how to create and scale a Couchbase Cluster using full armor of Docker \u2013 Docker Machine, Docker Swarm and Docker Compose.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-cluster-docker-swarm-compose-machine\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Cluster on Docker Swarm using Docker Compose and Docker Machine"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f","name":"Arun Gupta, Vicepresidente, Defensa del Desarrollador, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337","url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","caption":"Arun Gupta, VP, Developer Advocacy, Couchbase"},"description":"Arun Gupta es vicepresidente de promoci\u00f3n de desarrolladores en Couchbase. Ha creado y dirigido comunidades de desarrolladores durante m\u00e1s de 10 a\u00f1os en Sun, Oracle y Red Hat. Tiene una gran experiencia en liderar equipos multidisciplinares para desarrollar y ejecutar estrategias, planificar y ejecutar contenidos, campa\u00f1as de marketing y programas. Anteriormente dirigi\u00f3 equipos de ingenier\u00eda en Sun y es miembro fundador del equipo Java EE. Gupta es autor de m\u00e1s de 2.000 entradas de blog sobre tecnolog\u00eda. Tiene una amplia experiencia como conferenciante en m\u00e1s de 40 pa\u00edses sobre innumerables temas y es una JavaOne Rock Star desde hace tres a\u00f1os consecutivos. Gupta tambi\u00e9n fund\u00f3 el cap\u00edtulo Devoxx4Kids en Estados Unidos y sigue promoviendo la educaci\u00f3n tecnol\u00f3gica entre los ni\u00f1os. Autor de varios libros sobre tecnolog\u00eda, \u00e1vido corredor, trotamundos, campe\u00f3n de Java, l\u00edder de JUG, miembro del Dream Team de NetBeans y capit\u00e1n de Docker, es f\u00e1cilmente accesible en @arungupta.","sameAs":["https:\/\/x.com\/arungupta"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/arun-gupta\/"}]}},"authors":[{"term_id":8933,"user_id":58,"is_guest":0,"slug":"arun-gupta","display_name":"Arun Gupta, VP, Developer Advocacy, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","author_category":"","last_name":"Gupta","first_name":"Arun","job_title":"","user_url":"","description":"Arun Gupta es vicepresidente de promoci\u00f3n de desarrolladores en Couchbase. Ha creado y dirigido comunidades de desarrolladores durante m\u00e1s de 10 a\u00f1os en Sun, Oracle y Red Hat. Tiene una gran experiencia en liderar equipos multidisciplinares para desarrollar y ejecutar estrategias, planificar y ejecutar contenidos, campa\u00f1as de marketing y programas. Anteriormente dirigi\u00f3 equipos de ingenier\u00eda en Sun y es miembro fundador del equipo Java EE.\r\n\r\nGupta es autor de m\u00e1s de 2.000 entradas de blog sobre tecnolog\u00eda. Tiene una amplia experiencia como conferenciante en m\u00e1s de 40 pa\u00edses sobre innumerables temas y es una JavaOne Rock Star desde hace tres a\u00f1os consecutivos. Gupta tambi\u00e9n fund\u00f3 el cap\u00edtulo Devoxx4Kids en Estados Unidos y sigue promoviendo la educaci\u00f3n tecnol\u00f3gica entre los ni\u00f1os. Autor de varios libros sobre tecnolog\u00eda, \u00e1vido corredor, trotamundos, campe\u00f3n de Java, l\u00edder de JUG, miembro del Dream Team de NetBeans y capit\u00e1n de Docker, es f\u00e1cilmente accesible en @arungupta."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2260"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2260\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2260"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2260"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}