{"id":2689,"date":"2017-02-15T21:55:34","date_gmt":"2017-02-16T05:55:34","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2689"},"modified":"2023-09-11T01:42:18","modified_gmt":"2023-09-11T08:42:18","slug":"stateful-docker-containers-portworx-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/stateful-docker-containers-portworx-couchbase\/","title":{"rendered":"Contenedores Stateful con Portworx y Couchbase"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2691\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/02\/px-logo-300x110.png\" alt=\"Portworx Logo\" width=\"300\" height=\"110\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/px-logo-300x110.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/px-logo-20x7.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/px-logo.png 753w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1109\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/02\/logo-300x69.png\" alt=\"Couchbase Logo\" width=\"300\" height=\"69\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/logo-300x69.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/logo-1024x236.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/logo-768x177.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/logo-1536x354.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/logo-2048x472.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/logo-20x5.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/logo-1320x304.png 1320w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Los contenedores est\u00e1n pensados para ser ef\u00edmeros, por lo que escalan bastante bien para aplicaciones sin estado. Los contenedores con estado, como Couchbase, necesitan un tratamiento diferente. <a href=\"https:\/\/thenewstack.io\/methods-dealing-container-storage\/\">Gesti\u00f3n de la persistencia para contenedores Docker<\/a>\u00a0proporcionan una gran visi\u00f3n general de c\u00f3mo gestionar la persistencia de los contenedores con estado.<\/p>\n<p>Este blog explicar\u00e1 c\u00f3mo utilizar <a href=\"https:\/\/docs.docker.com\/engine\/extend\/plugins_volume\/\">Plugins de volumen Docker<\/a> y <a href=\"https:\/\/portworx.com\/\">Portworx<\/a> para crear un contenedor con estado.<\/p>\n<h2 id=\"user-content-why-a-href-https-portworx-com-portworx-a\">\u00bfPor qu\u00e9 Portworx?<\/h2>\n<p><a href=\"https:\/\/portworx.com\/\">Portworx<\/a> es un contenedor de servicios de datos f\u00e1cil de desplegar que proporciona persistencia, replicaci\u00f3n, instant\u00e1neas, cifrado, RBAC seguro y mucho m\u00e1s. Algunas de sus ventajas son:<\/p>\n<div>\n<ol class=\"arabic\">\n<li><strong>Vol\u00famenes granulares de contenedores<\/strong> - Portworx puede tomar m\u00faltiples vol\u00famenes EBS por host y agregar la capacidad y derivar vol\u00famenes virtuales granulares (soft) por contenedor.<\/li>\n<li><strong>Zona de disponibilidad cruzada HA<\/strong> - Portworx proteger\u00e1 los datos, a nivel de bloque, a trav\u00e9s de m\u00faltiples instancias de computaci\u00f3n a trav\u00e9s de zonas de disponibilidad. A medida que los controladores de replicaci\u00f3n reinicien los pods en diferentes nodos, los datos seguir\u00e1n estando altamente disponibles en esos nodos.<\/li>\n<li><strong>Apoyo a las operaciones de datos de la empresa<\/strong> - Portworx implementa instant\u00e1neas granulares de contenedor, clase de servicio, escalonamiento sobre los vol\u00famenes f\u00edsicos disponibles.<\/li>\n<li><strong>Facilidad de despliegue y aprovisionamiento<\/strong> - El propio Portworx se despliega como un contenedor y se integra con las herramientas de orquestaci\u00f3n. DevOps puede aprovisionar mediante programaci\u00f3n almacenamiento granular de contenedores con cualquier propiedad, como tama\u00f1o, clase de servicio, clave de cifrado, etc.<\/li>\n<\/ol>\n<h2>Configurar instancia AWS EC2<\/h2>\n<p>Portworx s\u00f3lo funciona en Linux o CoreOS. Configure una instancia de Ubuntu en AWS EC2:<\/p>\n<ol class=\"arabic\">\n<li>Inicie la instancia de Ubuntu 14.04 con\u00a0<code>m3.medio<\/code> tipo de instancia. Aseg\u00farese de a\u00f1adir el puerto 8091 a las reglas de seguridad de entrada. Esto permite <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/admin\/ui-intro.html\">Consola web de Couchbase<\/a> ser accesible despu\u00e9s.<\/li>\n<li>Inicie sesi\u00f3n en la instancia EC2 utilizando el comando: <code>ssh -i ~\/.ssh\/arun-cb-west1.pem ubuntu@<\/code><\/li>\n<li>Actualice la instancia de Ubuntu: <code>sudo apt-get update<\/code><\/li>\n<li>Instala Docker: <code>curl -sSL https:\/\/get.docker.com\/ | sh<\/code>. Encontrar\u00e1 instrucciones m\u00e1s detalladas en <a href=\"https:\/\/docs.docker.com\/engine\/installation\/linux\/ubuntu\/\">Obtener Docker para Ubuntu<\/a>.<\/li>\n<li>Habilitar el acceso no root para el comando docker: <code>sudo usermod -aG docker ubuntu<\/code><\/li>\n<li>Cierre la sesi\u00f3n de la instancia EC2 y vuelva a iniciarla<\/li>\n<\/ol>\n<h2>Crear volumen AWS EBS<\/h2>\n<ol class=\"arabic\">\n<li>Crear un volumen EBS para 10GB usando la consola EC2 como se explica en <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/ebs-creating-volume.html\">docs<\/a>.<\/li>\n<li>Obtenga el id de instancia de la consola EC2. Adjunte este volumen a la instancia EC2 utilizando este id de instancia, utilice el nombre de dispositivo por defecto\u00a0<code>\/dev\/sdf.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2690\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/02\/portworx-create-ec2-volume-300x138.png\" alt=\"Portworx EC2 Create Volume\" width=\"300\" height=\"138\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/portworx-create-ec2-volume-300x138.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/portworx-create-ec2-volume-768x354.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/portworx-create-ec2-volume-1024x472.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/portworx-create-ec2-volume.png 1146w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><br \/>\n<\/code><\/li>\n<li>Utilice <code>lsblk<\/code>\u00a0en la instancia EC2 para verificar que el volumen est\u00e1 conectado a la instancia:\n<div>\n<div>\n<pre><code>NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\r\nxvda    202:0    0   8G  0 disk\r\n\u2514\u2500xvda1 202:1    0   8G  0 part \/\r\nxvdb    202:16   0  30G  0 disk \/mnt\r\nxvdf    202:80   0  10G  0 disk<\/code><\/pre>\n<\/div>\n<\/div>\n<\/li>\n<\/ol>\n<h2>Contenedor Portworx<\/h2>\n<ol>\n<li>La composici\u00f3n del almacenamiento f\u00edsico de cada nodo, todos los vol\u00famenes aprovisionados en el cl\u00faster as\u00ed como sus mapeos de contenedor se almacenan en un cl\u00faster etcd. Inicie un cl\u00faster etcd:\n<pre class=\"lang:default decode:true\">docker run -v \\\r\n  \/data\/varlib\/etcd \\\r\n  -p 4001:4001 \\\r\n  -d \\\r\n  portworx\/etcd:latest<\/pre>\n<\/li>\n<li>Por defecto, los vol\u00famenes montados como root no pueden ser compartidos. Habil\u00edtelo mediante el comando\n<pre class=\"lang:default decode:true\">sudo mount --make-shared \/<\/pre>\n<p>M\u00e1s informaci\u00f3n en <a href=\"https:\/\/docs.portworx.com\/os-config-shared-mounts.html#ubuntu-configuration-and-shared-mounts\">Configuraci\u00f3n de Ubuntu y montajes compartidos<\/a>.<\/li>\n<li>El contenedor PX-Developer (px-dev) en un servidor con Docker Engine convierte ese servidor en un nodo de almacenamiento escalable. PX-Enterprise, por su parte, ofrece soporte multicl\u00faster y multicloud, donde el almacenamiento bajo gesti\u00f3n puede estar en las instalaciones o en una nube p\u00fablica como AWS.<br \/>\nPara este blog, iniciaremos un contenedor px-dev:<\/p>\n<pre class=\"lang:default decode:true\">docker run --restart=always --name px -d --net=host \\\r\n  --privileged=true                             \\\r\n  -v \/run\/docker\/plugins:\/run\/docker\/plugins    \\\r\n  -v \/var\/lib\/osd:\/var\/lib\/osd:shared           \\\r\n  -v \/dev:\/dev                                  \\\r\n  -v \/etc\/pwx:\/etc\/pwx                          \\\r\n  -v \/opt\/pwx\/bin:\/export_bin:shared            \\\r\n  -v \/var\/run\/docker.sock:\/var\/run\/docker.sock  \\\r\n  -v \/var\/cores:\/var\/cores                      \\\r\n  -v \/usr\/src:\/usr\/src                           \\\r\n  --ipc=host                                    \\\r\n  portworx\/px-dev -daemon -k etcd:\/\/localhost:4001 -c cluster1 -s \/dev\/xvdf<\/pre>\n<p>Encontrar\u00e1 informaci\u00f3n detallada sobre este comando en <a href=\"https:\/\/docs.portworx.com\/run-with-docker.html\">Ejecutar PX con Docker<\/a>.<\/li>\n<li>Busque registros que utilicen <code>docker container logs -f px<\/code> y presta atenci\u00f3n a las siguientes afirmaciones:\n<pre class=\"lang:default decode:true\">time=\"2017-02-16T05:33:26Z\" level=info msg=\"Initialize the scheduler client and the scheduler watch\" \r\ntime=\"2017-02-16T05:33:26Z\" level=info msg=\"Started a kvdb watch on key : scheduler\/containers\" \r\ntime=\"2017-02-16T05:33:26Z\" level=info msg=\"Started a kvdb watch on key : scheduler\/volumes\" \r\ntime=\"2017-02-16T05:33:26Z\" level=info msg=\"Started a kvdb watch on key : scheduler\/nodes\/list\"<\/pre>\n<\/li>\n<li>Compruebe el estado de los vol\u00famenes adjuntos que est\u00e1n disponibles para Portworx utilizando\u00a0<code>sudo \/opt\/pwx\/bin\/pxctl status<\/code> para ver la salida:\n<pre class=\"lang:default decode:true\">Status: PX is operational\r\nNode ID: 679b79b1-f4c3-413e-a8e0-c527348647c9\r\n\tIP: 172.31.25.21 \r\n \tLocal Storage Pool: 1 pool\r\n\tPool\tIO_Priority\tSize\tUsed\tStatus\tZone\tRegion\r\n\t0\tLOW\t\t10 GiB\t266 MiB\tOnline\ta\tus-west-1\r\n\tLocal Storage Devices: 1 device\r\n\tDevice\tPath\t\tMedia Type\t\tSize\t\tLast-Scan\r\n\t0:1\t\/dev\/xvdf\tSTORAGE_MEDIUM_SSD\t10 GiB\t\t16 Feb 17 05:33 UTC\r\n\ttotal\t\t\t-\t\t\t10 GiB\r\nCluster Summary\r\n\tCluster ID: cluster1\r\n\tNode IP: 172.31.25.21 - Capacity: 266 MiB\/10 GiB Online (This node)\r\nGlobal Storage Pool\r\n\tTotal Used    \t:  266 MiB\r\n\tTotal Capacity\t:  10 GiB<\/pre>\n<p>Muestra la capacidad total disponible y utilizada.<\/li>\n<\/ol>\n<h2>Volumen Docker<\/h2>\n<ol>\n<li>Vamos a crear un volumen Docker:\n<pre class=\"lang:default decode:true\">docker volume create -d pxd -o size=10G -o fs=ext4 --name cbvol<\/pre>\n<p>Encontrar\u00e1 m\u00e1s informaci\u00f3n sobre este comando en <a href=\"https:\/\/docs.portworx.com\/create-manage-storage-volumes.html\">Crear vol\u00famenes con Docker<\/a>.<\/li>\n<li>Compruebe la lista de vol\u00famenes disponibles mediante <code>volumen docker ls<\/code> mando:\n<pre class=\"lang:default decode:true\">DRIVER              VOLUME NAME\r\nlocal               70f7b9a356df4c1f0c08e13a4e813f1ef3e174a91001f277a63b62d683a27159\r\npxd                 cbvol\r\nlocal               f7bc5fa455a88638c106881f1bce98244b670e094d5fdc47917b53a88e46c073<\/pre>\n<p>Como se muestra, <code>cbvol<\/code> se crea con <code>pxd<\/code> conductor.<\/li>\n<\/ol>\n<h2>Couchbase con Portworx Volume<\/h2>\n<ol>\n<li>Crear un contenedor Couchbase utilizando el volumen Portworx:\n<pre class=\"lang:default decode:true\">docker container run \\\r\n  -d \\\r\n  --name db \\\r\n  -v cbvol:\/opt\/couchbase\/var \\\r\n  -p 8091-8094:8091-8094 \\\r\n  -p 11210:11210 \\\r\n  arungupta\/couchbase<\/pre>\n<p>Observe c\u00f3mo <code>\/opt\/couchbase\/var<\/code> donde se almacenan todos los datos de Couchbase en el contenedor se asigna a la carpeta <code>cbvol<\/code> en el host. Este volumen es mapeado por Portworx.<\/li>\n<li>Inicie sesi\u00f3n en la consola web de Couchbase en https:\/\/:8091, utilice el login <code>Administrador<\/code> y <code>contrase\u00f1a<\/code> como contrase\u00f1a.<\/li>\n<li>Vaya a Cubos de datos y cree un nuevo cubo de datos pwx:<br \/>\n<img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"84\" class=\"alignnone size-medium wp-image-2692\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/02\/portworx-pwx-bucket-1-300x84.png\" alt=\"Couchbase Bucket with Portworx\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/portworx-pwx-bucket-1-300x84.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/portworx-pwx-bucket-1-1024x287.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/portworx-pwx-bucket-1-768x215.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/portworx-pwx-bucket-1-1536x431.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/portworx-pwx-bucket-1-2048x575.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/portworx-pwx-bucket-1-20x6.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/portworx-pwx-bucket-1-1320x370.png 1320w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/li>\n<li>En la instancia EC2, vea la lista de contenedores:\n<pre class=\"lang:default decode:true\">ubuntu@ip-172-31-25-21:~$ docker container ls\r\nCONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                                                                                               NAMES\r\n8ae763d9d53b        arungupta\/couchbase    \"\/entrypoint.sh \/o...\"   5 minutes ago       Up 5 minutes        0.0.0.0:8091-8094-&gt;8091-8094\/tcp, 11207\/tcp, 11211\/tcp, 0.0.0.0:11210-&gt;11210\/tcp, 18091-18093\/tcp   db\r\n5423bcd9b426        portworx\/px-dev        \"\/docker-entry-poi...\"   14 minutes ago      Up 14 minutes                                                                                                           px\r\ncf3c779a4459        portworx\/etcd:latest   \"\/entrypoint.sh \/b...\"   21 minutes ago      Up 21 minutes       2379-2380\/tcp, 7001\/tcp, 0.0.0.0:4001-&gt;4001\/tcp                                                     youthful_jepsen<\/pre>\n<p><code>etcd<\/code>, <code>px-dev<\/code> y <code>db<\/code> contenedores en funcionamiento.<\/li>\n<li>Mata al <code>db<\/code> contenedor:\n<pre class=\"lang:default decode:true\">docker container rm -f db<\/pre>\n<\/li>\n<li>Reinicie el contenedor de base de datos como:\n<pre class=\"lang:default decode:true\">docker container run \\\r\n  -d \\\r\n  --name db \\\r\n  -v cbvol:\/opt\/couchbase\/var \\\r\n  -p 8091-8094:8091-8094 \\\r\n  -p 11210:11210 \\\r\n  arungupta\/couchbase<\/pre>\n<p>Ahora, porque <code>cbvol<\/code> se asigna a <code>\/opt\/couchbase\/var<\/code> de nuevo, los datos se conservan a trav\u00e9s de reinicios. Esto puede verificarse accediendo a la Consola Web de Couchbase y comprobando el archivo <code>pwx<\/code> creado anteriormente.<\/li>\n<\/ol>\n<p>Otra perspectiva interesante se encuentra tambi\u00e9n en\u00a0<a href=\"https:\/\/myopsblog.wordpress.com\/2017\/02\/06\/why-databases-is-not-for-containers\/\">\u00bfpor qu\u00e9 las bases de datos no son para contenedores?<\/a>. S\u00f3lo porque existe Docker, no significa que todas sus necesidades de base de datos deben ser Dockerized. Pero si es necesario, entonces hay un mont\u00f3n de opciones y se puede utilizar en aplicaciones de grado de producci\u00f3n.<\/p>\n<p>\u00bfQuieres saber m\u00e1s sobre c\u00f3mo ejecutar Couchbase en contenedores?<\/p>\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/containers\/\">Couchbase en contenedores<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/developers\/\">Portal para desarrolladores de Couchbase<\/a><\/li>\n<li><a href=\"https:\/\/twitter.com\/couchbasedev\">@couchhasedev<\/a> y <a href=\"https:\/\/twitter.com\/couchbase\">@couchbase<\/a><\/li>\n<\/ul>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>\u00a0 Containers are meant to be ephemeral and so scale pretty\u00a0well for stateless applications. Stateful containers, such as Couchbase, need to be treated differently. Managing Persistence for Docker Containers\u00a0provide a great overview of how to manage persistence for stateful containers. [&hellip;]<\/p>","protected":false},"author":58,"featured_media":2691,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815],"tags":[1520,1519],"ppma_author":[8933],"class_list":["post-2689","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","tag-containers","tag-docker"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Stateful Containers using Portworx and Couchbase<\/title>\n<meta name=\"description\" content=\"This blog shows how to create stateful containers using Docker Volume Mapping, Portworx and Couchbase on Amazon Web Services..\" \/>\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\/stateful-docker-containers-portworx-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Stateful Containers using Portworx and Couchbase\" \/>\n<meta property=\"og:description\" content=\"This blog shows how to create stateful containers using Docker Volume Mapping, Portworx and Couchbase on Amazon Web Services..\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/stateful-docker-containers-portworx-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-02-16T05:55:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-11T08:42:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/02\/px-logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"753\" \/>\n\t<meta property=\"og:image:height\" content=\"276\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/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=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/\"},\"author\":{\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\"},\"headline\":\"Stateful Containers using Portworx and Couchbase\",\"datePublished\":\"2017-02-16T05:55:34+00:00\",\"dateModified\":\"2023-09-11T08:42:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/\"},\"wordCount\":711,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/px-logo.png\",\"keywords\":[\"containers\",\"docker\"],\"articleSection\":[\"Best Practices and Tutorials\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/\",\"name\":\"Stateful Containers using Portworx and Couchbase\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/px-logo.png\",\"datePublished\":\"2017-02-16T05:55:34+00:00\",\"dateModified\":\"2023-09-11T08:42:18+00:00\",\"description\":\"This blog shows how to create stateful containers using Docker Volume Mapping, Portworx and Couchbase on Amazon Web Services..\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/px-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/px-logo.png\",\"width\":753,\"height\":276,\"caption\":\"Portworx Logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Stateful Containers using Portworx and Couchbase\"}]},{\"@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":"Contenedores Stateful con Portworx y Couchbase","description":"Este blog muestra c\u00f3mo crear contenedores con estado utilizando Docker Volume Mapping, Portworx y Couchbase en Amazon Web Services...","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\/stateful-docker-containers-portworx-couchbase\/","og_locale":"es_MX","og_type":"article","og_title":"Stateful Containers using Portworx and Couchbase","og_description":"This blog shows how to create stateful containers using Docker Volume Mapping, Portworx and Couchbase on Amazon Web Services..","og_url":"https:\/\/www.couchbase.com\/blog\/es\/stateful-docker-containers-portworx-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-02-16T05:55:34+00:00","article_modified_time":"2023-09-11T08:42:18+00:00","og_image":[{"width":753,"height":276,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/02\/px-logo.png","type":"image\/png"}],"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":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/"},"author":{"name":"Arun Gupta, VP, Developer Advocacy, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f"},"headline":"Stateful Containers using Portworx and Couchbase","datePublished":"2017-02-16T05:55:34+00:00","dateModified":"2023-09-11T08:42:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/"},"wordCount":711,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/px-logo.png","keywords":["containers","docker"],"articleSection":["Best Practices and Tutorials"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/","name":"Contenedores Stateful con Portworx y Couchbase","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/px-logo.png","datePublished":"2017-02-16T05:55:34+00:00","dateModified":"2023-09-11T08:42:18+00:00","description":"Este blog muestra c\u00f3mo crear contenedores con estado utilizando Docker Volume Mapping, Portworx y Couchbase en Amazon Web Services...","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/px-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/px-logo.png","width":753,"height":276,"caption":"Portworx Logo"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/stateful-docker-containers-portworx-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Stateful Containers using Portworx and Couchbase"}]},{"@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\/2689","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=2689"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2689\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/2691"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2689"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2689"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2689"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}