{"id":2383,"date":"2017-01-06T08:32:58","date_gmt":"2017-01-06T08:32:57","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2383"},"modified":"2023-05-19T04:05:27","modified_gmt":"2023-05-19T11:05:27","slug":"docker-service-swarm-mode-couchbase-cluster","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/docker-service-swarm-mode-couchbase-cluster\/","title":{"rendered":"Servi\u00e7o Docker e modo Swarm para criar um cluster do Couchbase"},"content":{"rendered":"<p>Introdu\u00e7\u00e3o do Docker 1.12 <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/docker-services-stack-distributed-application-bundle\/\">Servi\u00e7os<\/a>. Um servi\u00e7o replicado, distribu\u00eddo e com balanceamento de carga pode ser facilmente criado usando <code>servi\u00e7o docker create<\/code> comando. Um \"estado desejado\" do aplicativo, como executar 3 cont\u00eaineres do Couchbase, \u00e9 fornecido e o mecanismo de autocorre\u00e7\u00e3o do Docker garante que muitos cont\u00eaineres sejam executados no cluster. Se um cont\u00eainer for desativado, outro cont\u00eainer ser\u00e1 iniciado.<br \/>\nSe um n\u00f3 for desativado, os cont\u00eaineres desse n\u00f3 ser\u00e3o iniciados em um n\u00f3 diferente. Este blog mostrar\u00e1 como configurar um cluster do Couchbase usando o Docker Services. Muito obrigado a <a href=\"https:\/\/twitter.com\/marcosnils\">@marcosnils<\/a>, outro colega <a href=\"https:\/\/www.docker.com\/community\/docker-captains\">Capit\u00e3o do Docker<\/a>,<br \/>\npara me ajudar a depurar a rede!<\/p>\n<h2>Cluster do Couchbase<\/h2>\n<p>Um cluster de servidores Couchbase \u00e9 normalmente implantado em servidores de commodity. O Couchbase Server tem uma topologia ponto a ponto em que todos os n\u00f3s s\u00e3o iguais e se comunicam entre si sob demanda. N\u00e3o existe o conceito de n\u00f3s mestres, n\u00f3s escravos e n\u00f3s de configura\u00e7\u00e3o,<br \/>\nO sistema permite que os n\u00f3s de nome, os n\u00f3s principais etc. e todo o software carregado em cada n\u00f3 sejam id\u00eanticos. Isso permite que os n\u00f3s sejam adicionados ou removidos sem considerar seu \"tipo\". Esse modelo funciona particularmente bem com a infraestrutura de nuvem em geral.<\/p>\n<div>Um processo t\u00edpico de cria\u00e7\u00e3o de cluster do Couchbase \u00e9 semelhante:<\/div>\n<div>\n<ul>\n<li>Iniciar o Couchbase: Iniciar n servidores Couchbase<\/li>\n<li>Criar cluster: Escolha qualquer servidor e adicione todos os outros servidores a ele para criar o cluster<\/li>\n<li>Rebalancear o cluster: Reequilibrar o cluster para que os dados sejam distribu\u00eddos pelo cluster<\/li>\n<\/ul>\n<\/div>\n<div>Para automatizar o uso dos servi\u00e7os do Docker, a cria\u00e7\u00e3o do cluster \u00e9 dividida em um servi\u00e7o \"mestre\" e um \"trabalhador\".<\/div>\n<div><a href=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-cluster-1024x521.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-14254\" src=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-cluster-1024x521.png\" alt=\"docker-service-couchbase-cluster\" width=\"604\" height=\"307\" \/><\/a><\/div>\n<div><\/div>\n<div>O servi\u00e7o mestre tem apenas uma r\u00e9plica. Isso fornece um \u00fanico ponto de refer\u00eancia para iniciar a cria\u00e7\u00e3o do cluster. Esse servi\u00e7o tamb\u00e9m exp\u00f5e a porta 8091. Ele permite que o\u00a0<a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/admin\/ui-intro.html\">Console da Web do Couchbase<\/a>\u00a0para<br \/>\nser acess\u00edvel de fora do cluster.<\/div>\n<div><\/div>\n<div>O servi\u00e7o de trabalho usa exatamente a mesma imagem do servi\u00e7o mestre. Isso mant\u00e9m o cluster homog\u00eaneo, o que permite dimensionar o cluster facilmente.<\/div>\n<div><\/div>\n<div>Vamos come\u00e7ar!<\/div>\n<div><\/div>\n<h2>Configurar o modo Swarm no Ubuntu<\/h2>\n<ol>\n<li>Inicie uma inst\u00e2ncia do Ubuntu na Amazon. Este blog usou <code>mx4.large<\/code>\u00a0para a AMI.<\/li>\n<li>Instalar o Docker:\n<pre class=\"lang:default decode:true\">curl -sSL https:\/\/get.docker.com\/ | sh<\/pre>\n<\/li>\n<li><a href=\"https:\/\/docs.docker.com\/engine\/swarm\/\">Modo Docker Swarm<\/a> \u00e9 um recurso opcional e precisa ser ativado explicitamente. Inicializar o modo Swarm:\n<pre class=\"lang:default decode:true\">inicializa\u00e7\u00e3o do enxame de docas<\/pre>\n<\/li>\n<\/ol>\n<h2>Criar o servi\u00e7o \"mestre\" do Couchbase<\/h2>\n<ol>\n<li>Crie uma rede de sobreposi\u00e7\u00e3o:\n<pre class=\"lang:default decode:true\">docker network create -d overlay couchbase<\/pre>\n<p>Isso \u00e9 necess\u00e1rio para que v\u00e1rios cont\u00eaineres do Docker do Couchbase no cluster possam se comunicar entre si.<\/li>\n<li>Crie um servi\u00e7o \"mestre\":\n<pre class=\"lang:default decode:true\">docker service create --name couchbase-master -p 8091:8091 --replicas 1 --network couchbase -e TYPE=MASTER arungupta\/couchbase:swarm<\/pre>\n<div>Essa imagem \u00e9 criada usando o Dockerfile\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/docker-images\/blob\/master\/couchbase\/Dockerfile\">aqui<\/a>. Este Dockerfile usa um arquivo\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/docker-images\/blob\/master\/couchbase\/configure-node.sh\">script de configura\u00e7\u00e3o<\/a>\u00a0para<br \/>\nconfiguram a imagem base do Docker do Couchbase. Primeiro, ele usa\u00a0<a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/rest-api\/rest-endpoints-all.html\">API REST do Couchbase<\/a>\u00a0para configurar a cota de mem\u00f3ria, \u00edndice de configura\u00e7\u00e3o, dados e<br \/>\nservi\u00e7os de consulta, credenciais de seguran\u00e7a e carrega um bucket de dados de amostra. Em seguida, ele invoca o\u00a0<a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/cli\/cbcli-intro.html\">CLI do Couchbase<\/a>\u00a0para adicionar os comandos<br \/>\nn\u00f3 do Couchbase ao cluster ou adicionar o n\u00f3 e reequilibrar o cluster. Isso se baseia em tr\u00eas vari\u00e1veis de ambiente:<\/div>\n<div>\n<ul>\n<li><code>TIPO<\/code>: Define se o pod de ingresso \u00e9 de trabalho ou mestre<\/li>\n<li><code>MESTRE DA BASE DE SOF\u00c1<\/code>: Nome do servi\u00e7o mestre<\/li>\n<li><code>AUTO_REBALANCE<\/code>: Define se o cluster precisa ser rebalanceado<\/li>\n<\/ul>\n<\/div>\n<div>Para esse primeiro arquivo de configura\u00e7\u00e3o, a vari\u00e1vel de ambiente TYPE \u00e9 definida como MASTER e, portanto, nenhuma configura\u00e7\u00e3o adicional \u00e9 feita na imagem do Couchbase.<\/div>\n<p>Esse servi\u00e7o tamb\u00e9m usa a rede de sobreposi\u00e7\u00e3o criada anteriormente chamada <code>couchbase<\/code>. Ele exp\u00f5e a porta 8091 que faz com que o <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/admin\/ui-intro.html\">Console da Web do Couchbase<\/a> acess\u00edvel fora do cluster. Esse servi\u00e7o cont\u00e9m apenas uma r\u00e9plica do cont\u00eainer.<\/li>\n<li>Verificar o status do servi\u00e7o do Docker:\n<pre class=\"lang:default decode:true\">ubuntu@ip-172-31-26-234:~$ docker service ls\r\nID            NAME              REPLICAS  IMAGE                      COMMAND\r\ncecl1rl5ecyr  couchbase-master  1\/1       arungupta\/couchbase:swarm<\/pre>\n<p>Isso mostra que o servi\u00e7o est\u00e1 em execu\u00e7\u00e3o. O n\u00famero \"desejado\" e \"esperado\" de r\u00e9plicas \u00e9 1 e, portanto, est\u00e1 correspondendo.<\/li>\n<li>Verifique as tarefas no servi\u00e7o:\n<pre class=\"lang:default decode:true\">ubuntu@ip-172-31-26-234:~$ docker service ps couchbase-master\r\nID                         NAME                IMAGE                      NODE              DESIRED STATE  CURRENT STATE           ERROR\r\n2xuw1h0jvantsgj9f8zuj03k8  couchbase-master.1  arungupta\/couchbase:swarm  ip-172-31-26-234  Running        Running 30 seconds ago<\/pre>\n<p>Isso mostra que o cont\u00eainer est\u00e1 em execu\u00e7\u00e3o.<\/li>\n<li>Acesse o Console da Web do Couchbase usando o endere\u00e7o IP p\u00fablico e ele dever\u00e1 ter a seguinte apar\u00eancia:<br \/>\n<a href=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-login-1024x474.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-14256\" src=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-login-1024x474.png\" alt=\"docker-service-couchbase-login\" width=\"604\" height=\"280\" \/> <\/a><br \/>\nA imagem usada no arquivo de configura\u00e7\u00e3o \u00e9 configurada com o par\u00e2metro\u00a0<code>Administrador<\/code>\u00a0nome de usu\u00e1rio e\u00a0<code>senha<\/code>\u00a0senha. Digite as credenciais para ver o console:<br \/>\n<a href=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-web-console-1024x641.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-14255\" src=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-web-console-1024x641.png\" alt=\"docker-service-couchbase-web-console\" width=\"604\" height=\"378\" \/> <\/a><\/li>\n<li>Clique em Server Nodes (N\u00f3s do servidor) para ver quantos n\u00f3s do Couchbase fazem parte do cluster. Como esperado, ele mostra apenas um n\u00f3:<br \/>\n<a href=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-one-active-server-1024x319.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-14257\" src=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-one-active-server-1024x319.png\" alt=\"docker-service-couchbase-one-active-server\" width=\"604\" height=\"188\" \/><\/a><\/li>\n<\/ol>\n<h2>Criar o servi\u00e7o \"worker\" do Couchbase<\/h2>\n<ol>\n<li>Criar o servi\u00e7o \"worker\":\n<pre class=\"lang:default decode:true\">docker service create --name couchbase-worker --replicas 1 -e TYPE=WORKER -e COUCHBASE_MASTER=couchbase-master.couchbase --network couchbase arungupta\/couchbase:swarm<\/pre>\n<p>Esse RC tamb\u00e9m cria uma \u00fanica r\u00e9plica do Couchbase usando o mesmo <code>arungupta\/couchbase:swarm<\/code> imagem. As principais diferen\u00e7as aqui s\u00e3o:<\/p>\n<ul>\n<li><code>TIPO<\/code> \u00e9 definida como <code>TRABALHADOR<\/code>. Isso adiciona um n\u00f3 de trabalho do Couchbase ao cluster.<\/li>\n<li><code>MESTRE DA BASE DE SOF\u00c1<\/code> \u00e9 passado o nome do servi\u00e7o mestre, \u00a0<code>couchbase-master.couchbase<\/code>\u00a0no nosso caso. Isso usa o mecanismo de descoberta de servi\u00e7os incorporado ao Docker para o trabalhador e o<br \/>\no mestre para se comunicar.<\/li>\n<\/ul>\n<\/li>\n<li>Verificar o servi\u00e7o:\n<pre class=\"lang:default decode:true\">ubuntu@ip-172-31-26-234:~$ docker service ls\r\nID            NAME              REPLICAS  IMAGE                      COMMAND\r\naw22g79o3u8z  couchbase-worker  1\/1       arungupta\/couchbase:swarm  \r\ncecl1rl5ecyr  couchbase-master  1\/1       arungupta\/couchbase:swarm<\/pre>\n<\/li>\n<li>A verifica\u00e7\u00e3o do Console da Web do Couchbase mostra a sa\u00edda atualizada:<br \/>\n<a href=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-one-pending-server-1024x316.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-14258\" src=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-one-pending-server-1024x316.png\" alt=\"docker-service-couchbase-one-pending-server\" width=\"604\" height=\"186\" \/><\/a><br \/>\nIsso mostra que um servidor est\u00e1 pendente para ser rebalanceado, <code>AUTO_REBALANCE<\/code> A vari\u00e1vel de ambiente poderia ter sido definida como <code>verdadeiro<\/code> ou <code>falso<\/code>\u00a0para<br \/>\nativar <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/clustersetup\/rebalance.html\">reequil\u00edbrio<\/a>. Isso garante que o n\u00f3 seja apenas adicionado ao cluster, mas que o cluster em si n\u00e3o seja rebalanceado. Para rebalancear o cluster, \u00e9 necess\u00e1rio<br \/>\nredistribuir os dados em v\u00e1rios n\u00f3s do cluster. A maneira recomendada \u00e9 adicionar v\u00e1rios n\u00f3s e, em seguida, reequilibrar manualmente o cluster usando o Console da Web.<\/li>\n<\/ol>\n<h2>Adicionar n\u00f3s do Couchbase por meio do dimensionamento do servi\u00e7o do Docker<\/h2>\n<ol>\n<li>Dimensionar o servi\u00e7o:\u00a0<code><code><code> <\/code><\/code><br \/>\n<\/code><\/p>\n<pre class=\"lang:default decode:true\">docker service scale couchbase-worker=2<\/pre>\n<\/li>\n<li>Verifique o servi\u00e7o:\n<pre class=\"lang:default decode:true\">ubuntu@ip-172-31-20-209:~$ docker service ls\r\nID            NAME              REPLICAS  IMAGE                      COMMAND\r\n1k650zjrwz00  couchbase-master  1\/1       arungupta\/couchbase:swarm  \r\n5o1i4eckr9d3  couchbase-worker  2\/2       arungupta\/couchbase:swarm<\/pre>\n<p>Isso mostra que duas r\u00e9plicas do trabalhador est\u00e3o em execu\u00e7\u00e3o.<\/li>\n<li>Verifique o Console da Web do Couchbase:<br \/>\n<a href=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-two-pending-servers-1024x366.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-14259\" src=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-two-pending-servers-1024x366.png\" alt=\"docker-service-couchbase-two-pending-servers\" width=\"604\" height=\"216\" \/><\/a><br \/>\nComo esperado, dois servidores foram adicionados ao cluster e est\u00e3o pendentes de rebalanceamento.<\/li>\n<li>Opcionalmente, voc\u00ea pode reequilibrar o cluster clicando no bot\u00e3o <code>Reequil\u00edbrio<\/code> e ele ser\u00e1 exibido como:<br \/>\n<a href=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-rebalancing-1024x431.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-14260\" src=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-rebalancing-1024x431.png\" alt=\"docker-service-couchbase-rebalancing\" width=\"604\" height=\"254\" \/><\/a><br \/>\nAp\u00f3s a conclus\u00e3o do rebalanceamento, o Console da Web do Couchbase \u00e9 atualizado conforme mostrado:<br \/>\n<a href=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-rebalanced-1024x402.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-14261\" src=\"\/wp-content\/original-assets\/september-2016\/docker-service-and-swarm-mode-to-create-couchbase-cluster\/docker-service-couchbase-rebalanced-1024x402.png\" alt=\"docker-service-couchbase-rebalanced\" width=\"604\" height=\"237\" \/><\/a><\/li>\n<li>Veja todos os cont\u00eaineres em execu\u00e7\u00e3o usando <code>docker ps<\/code>:\n<pre class=\"lang:default decode:true\">ubuntu@ip-172-31-26-234:~$ docker ps\r\nCONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                                        NAMES\r\na0d927f4a407        arungupta\/couchbase:swarm   \"\/entrypoint.sh \/opt\/\"   21 seconds ago      Up 20 seconds       8091-8094\/tcp, 11207\/tcp, 11210-11211\/tcp, 18091-18093\/tcp   couchbase-worker.2.4ufdw5rbdcu87whgm94yfv9yk\r\n22bde7f6471c        arungupta\/couchbase:swarm   \"\/entrypoint.sh \/opt\/\"   2 minutes ago       Up 2 minutes        8091-8094\/tcp, 11207\/tcp, 11210-11211\/tcp, 18091-18093\/tcp   couchbase-worker.1.f22c2gghu88bnbjl5ko1wlru5\r\nf97e8bc091c3        arungupta\/couchbase:swarm   \"\/entrypoint.sh \/opt\/\"   7 minutes ago       Up 7 minutes        8091-8094\/tcp, 11207\/tcp, 11210-11211\/tcp, 18091-18093\/tcp   couchbase-master.1.2xuw1h0jvantsgj9f8zuj03k8<\/pre>\n<\/li>\n<\/ol>\n<p>Al\u00e9m de criar um cluster, o Couchbase Server oferece suporte a uma s\u00e9rie de <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/ha-dr\/ha-dr-intro.html\">alta disponibilidade e recupera\u00e7\u00e3o de desastres<\/a> (HA\/DR). A maioria das estrat\u00e9gias de HA\/DR<br \/>\nOs sistemas de gerenciamento de dados do Couchbase dependem de uma abordagem multifacetada para maximizar a disponibilidade, aumentar a redund\u00e2ncia dentro e entre os data centers e realizar backups regulares. Agora que seu cluster do Couchbase est\u00e1 pronto, voc\u00ea pode executar seu primeiro <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/travel-app\/index.html\">aplicativo de amostra<\/a>.<br \/>\nSaiba mais sobre o Couchbase e os cont\u00eaineres:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/containers\/\">Couchbase em cont\u00eaineres<\/a><\/li>\n<li>Siga-nos em <a href=\"https:\/\/twitter.com\/couchbasedev\">@couchbasedev<\/a> ou <a href=\"https:\/\/twitter.com\/couchbase\">@couchbase<\/a><\/li>\n<li>Fa\u00e7a perguntas sobre <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/forums\/\">F\u00f3runs do Couchbase<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Docker 1.12 introduced Services.\u00a0A replicated, distributed and load balanced service can be easily created using docker service create command. A &#8220;desired state&#8221; of the application, such as run 3 containers of Couchbase, is provided and the self-healing Docker engine ensures [&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-2383","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.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Docker Service and Swarm Mode to Create Couchbase Cluster - The Couchbase Blog<\/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:\/\/www.couchbase.com\/blog\/pt\/docker-service-swarm-mode-couchbase-cluster\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker Service and Swarm Mode to Create Couchbase Cluster\" \/>\n<meta property=\"og:description\" content=\"Docker 1.12 introduced Services.\u00a0A replicated, distributed and load balanced service can be easily created using docker service create command. A &#8220;desired state&#8221; of the application, such as run 3 containers of Couchbase, is provided and the self-healing Docker engine ensures [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/docker-service-swarm-mode-couchbase-cluster\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-06T08:32:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-19T11:05:27+00:00\" \/>\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=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/\"},\"author\":{\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\"},\"headline\":\"Docker Service and Swarm Mode to Create Couchbase Cluster\",\"datePublished\":\"2017-01-06T08:32:57+00:00\",\"dateModified\":\"2023-05-19T11:05:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/\"},\"wordCount\":936,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/\",\"name\":\"Docker Service and Swarm Mode to Create Couchbase Cluster - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-01-06T08:32:57+00:00\",\"dateModified\":\"2023-05-19T11:05:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/#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\/docker-service-swarm-mode-couchbase-cluster\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker Service and Swarm Mode to Create Couchbase Cluster\"}]},{\"@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\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\":\"pt-BR\",\"@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\/pt\/author\/arun-gupta\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Docker Service and Swarm Mode to Create Couchbase Cluster - The Couchbase Blog","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\/pt\/docker-service-swarm-mode-couchbase-cluster\/","og_locale":"pt_BR","og_type":"article","og_title":"Docker Service and Swarm Mode to Create Couchbase Cluster","og_description":"Docker 1.12 introduced Services.\u00a0A replicated, distributed and load balanced service can be easily created using docker service create command. A &#8220;desired state&#8221; of the application, such as run 3 containers of Couchbase, is provided and the self-healing Docker engine ensures [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/docker-service-swarm-mode-couchbase-cluster\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-01-06T08:32:57+00:00","article_modified_time":"2023-05-19T11:05:27+00:00","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":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/"},"author":{"name":"Arun Gupta, VP, Developer Advocacy, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f"},"headline":"Docker Service and Swarm Mode to Create Couchbase Cluster","datePublished":"2017-01-06T08:32:57+00:00","dateModified":"2023-05-19T11:05:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/"},"wordCount":936,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Server"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/","url":"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/","name":"Docker Service and Swarm Mode to Create Couchbase Cluster - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-01-06T08:32:57+00:00","dateModified":"2023-05-19T11:05:27+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/docker-service-swarm-mode-couchbase-cluster\/#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\/docker-service-swarm-mode-couchbase-cluster\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Docker Service and Swarm Mode to Create Couchbase Cluster"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados 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":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@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, vice-presidente de defesa do desenvolvedor, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@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 \u00e9 o vice-presidente de defesa do desenvolvedor na Couchbase. Ele criou e liderou comunidades de desenvolvedores por mais de 10 anos na Sun, Oracle e Red Hat. Ele tem grande experi\u00eancia na lideran\u00e7a de equipes multifuncionais para desenvolver e executar estrat\u00e9gias, planejamento e execu\u00e7\u00e3o de conte\u00fado, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e \u00e9 membro fundador da equipe Java EE. Gupta \u00e9 autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experi\u00eancia em palestras em mais de 40 pa\u00edses sobre uma infinidade de t\u00f3picos e \u00e9 um JavaOne Rock Star h\u00e1 tr\u00eas anos consecutivos. Gupta tamb\u00e9m fundou o cap\u00edtulo Devoxx4Kids nos EUA e continua a promover a educa\u00e7\u00e3o tecnol\u00f3gica entre as crian\u00e7as. Autor de v\u00e1rios livros sobre tecnologia, corredor \u00e1vido, viajante do mundo inteiro, campe\u00e3o de Java, l\u00edder de JUG, membro do NetBeans Dream Team e capit\u00e3o do Docker, ele pode ser facilmente acessado em @arungupta.","sameAs":["https:\/\/x.com\/arungupta"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/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 \u00e9 o vice-presidente de defesa do desenvolvedor na Couchbase. Ele criou e liderou comunidades de desenvolvedores por mais de 10 anos na Sun, Oracle e Red Hat. Ele tem grande experi\u00eancia na lideran\u00e7a de equipes multifuncionais para desenvolver e executar estrat\u00e9gias, planejamento e execu\u00e7\u00e3o de conte\u00fado, campanhas de marketing e programas. Antes disso, liderou equipes de engenharia na Sun e \u00e9 membro fundador da equipe Java EE.\r\n\r\nGupta \u00e9 autor de mais de 2.000 postagens em blogs sobre tecnologia. Ele tem uma vasta experi\u00eancia em palestras em mais de 40 pa\u00edses sobre diversos t\u00f3picos e \u00e9 um JavaOne Rock Star h\u00e1 tr\u00eas anos consecutivos. Gupta tamb\u00e9m fundou o cap\u00edtulo Devoxx4Kids nos EUA e continua a promover a educa\u00e7\u00e3o tecnol\u00f3gica entre as crian\u00e7as. Autor de v\u00e1rios livros sobre tecnologia, corredor \u00e1vido, viajante do mundo inteiro, campe\u00e3o de Java, l\u00edder de JUG, membro do NetBeans Dream Team e capit\u00e3o do Docker, ele pode ser facilmente acessado em @arungupta."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2383","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2383"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2383\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=2383"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2383"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2383"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2383"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}