Despliegue de Docker en Amazon con Tutum explicaba cómo desplegar una imagen Docker en Docker Tutum. Tutum es ahora Nube Docker.
Leer Anuncio de Docker Cloud para más detalles.
Las principales características de Docker Cloud son:
- Autenticación mediante Docker ID
- Integración con Docker Hub
- Apoyo a Repositorios oficiales de Docker
- Motor Docker con soporte comercial
- Capacidad para desplegar y escalar sus aplicaciones mediante GUI, API y CLI
Este blog lo demostrará:
- Conceptos clave de Docker Cloud
- Cómo crear un nuevo nodo Docker Cloud
- Cómo instalar Docker Cloud CLI
- Cómo crear un nuevo servicio en la nube Docker
- Acceso al servidor Couchbase en la nube Docker
- Cómo dar de baja el servicio en la nube y el nodo Docker
Y finalmente se irá con algunas referencias para los docs de Docker Cloud.
El blog utilizará Servidor Couchbase - una base de datos de documentos JSON de código abierto, altamente escalable, para la imagen Docker.
Docker Cloud TL;DR
Estos son los comandos rápidos para ejecutar una imagen Docker utilizando Docker Cloud en Amazon:
1 2 3 4 5 |
cerveza instale docker-nube docker-nube nodecluster crear -t 1 --etiqueta couchbase couchbase-nodo aws us-oeste-1 m3.grande docker-nube servicio crear --etiqueta couchbase -p 8091:8091 -p 8092:8092 -p 8093:8093 -p 11210:11210 arungupta/couchbase docker-nube servicio iniciar {ID_SERVICIO} docker-nube servicio inspeccionar {ID_SERVICIO} | jq ".container_ports[0].endpoint_uri" | sed s/tcp/http/g |
Más detalles a continuación.
Conceptos clave de Docker Cloud
Entendamos los conceptos básicos de Docker Cloud:
- Nodos son hosts/VM Linux individuales utilizados para desplegar y ejecutar sus aplicaciones. Se pueden aprovisionar nuevos nodos para aumentar la capacidad. Docker Cloud no proporciona servicios de alojamiento. Los nodos se aprovisionan utilizando servidores físicos, máquinas virtuales o proveedores de nube.
- Nodo Clusters son grupos lógicos de nodos del mismo tipo. Los clústeres de nodos permiten escalar fácilmente la infraestructura mediante el aprovisionamiento de más nodos.
- Servicios son grupos lógicos de contenedores de la misma imagen. Los servicios simplifican el escalado de la aplicación en distintos nodos.
Docker Cloud puede gestionarse con Web, CLI o API REST. Este blog utilizará la CLI de Docker Cloud para realizar todos los comandos.
Instalar Docker Cloud CLI
Instale Docker Cloud CLI:
1 2 3 4 5 |
cerveza instale docker-nube ==> Descargar https://homebrew.bintray.com/bottles/docker-cloud-1.0.2.yosemite.bottle.tar.gz Ya descargado: /Biblioteca/Cachés/Elaboración casera/docker-nube-1.0.2.yosemite.bottle.tar.gz ==> Verter docker-nube-1.0.2.yosemite.bottle.tar.gz ? /usr/local/Bodega/docker-nube/1.0.2: 482 archivos, 4.1M |
Las instrucciones completas de instalación están en Instalación de CLI. Comprueba la versión:
1 2 |
docker-nube -v docker-nube 1.0.2 |
El conjunto completo de comandos son:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
uso: docker-nube [-h] [-v] {acción,contenedor,evento,exec,inicio de sesión,nodo,nodecluster,repositorio,ejecute,servicio,pila,etiqueta,desencadenar,arriba} ... Docker Nube CLI opcional argumentos: -h, --ayuda Mostrar este ayuda mensaje y salida -v, --versión Mostrar programa's versión número y salida Docker Nube CLI comandos: {acción,contenedor,evento,exec,inicio de sesión,nodo,nodecluster,repositorio,ejecute,servicio,pila,etiqueta,desencadenar,arriba} acción Acción-relacionado operaciones contenedor Contenedor-relacionado operaciones evento Visite real tiempo Docker Nube eventos exec Ejecutar a comando en a corriendo contenedor inicio de sesión Por favor, utilice "docker login" a registro en Docker Nube nodo Nodo-relacionado operaciones nodecluster NodoCluster-relacionado operaciones repositorio Repositorio-relacionado operaciones ejecute Cree y ejecute a nuevo servicio servicio Servicio-relacionado operaciones pila Pila-relacionado operaciones etiqueta Etiqueta-relacionado operaciones desencadenar Disparador-relacionado operaciones arriba Cree y despliegue a pila |
Guarde las credenciales de inicio de sesión:
1 2 3 4 5 6 |
docker inicio de sesión Nombre de usuario: arungupta Contraseña: Correo electrónico: arun.gupta@gmail.com ADVERTENCIA: inicio de sesión credenciales guardado en /Usuarios/arungupta/.docker/config.json Inicio de sesión Con éxito |
Crear nuevo nodo Docker Cloud
Registre las credenciales de su proveedor de nube en Interfaz web de Docker Cloud como se explica en Enlace a un proveedor de servicios en nube. Amazon, Digital Ocean, Azure y otros. se admiten proveedores de nube.
Cree un nuevo clúster de nodos con un único nodo:
1 2 |
docker-nube nodecluster crear -t 1 --etiqueta couchbase couchbase-nodo aws us-oeste-1 m3.grande 42a34e04-02e1-47be-bf87-ec06e0e0b604 |
Este clúster de nodos tiene un único nodo (-t 1
) y utiliza la etiqueta "couchbase" (--tag couchbase
). Los cuatro últimos parámetros son el nombre del nodecluster (nodo couchbase
proveedor (aws
región (us-oeste-1
y nodetype (m3.grande
).
Cada nodo de este clúster de nodos recibirá la etiqueta asignada. Esto se utilizará más adelante para asignar servicios a un nodo o clúster de nodos específico.
Se puede comprobar el estado de este clúster de nodos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
docker-nube nodecluster inspeccionar 42a34e04-02e1-47be-bf87-ec06e0e0b604 | jq { "disco": 60, "uuid": "42a34e04-02e1-47be-bf87-ec06e0e0b604", "Etiquetas: [ { "nombre": "couchbase" } ], "número_actual_nodos": 1, "región": "/api/infra/v1/region/aws/us-west-1/", "target_num_nodes": 1, "estado": "Desplegado", "tipo_nodo": "/api/infra/v1/nodetype/aws/m3.large/", "resource_uri": "/api/infra/v1/nodecluster/42a34e04-02e1-47be-bf87-ec06e0e0b604/", "fecha_destruida": null, "opciones_proveedor": {}, "nodos": [ "/api/infra/v1/node/5c4c78e0-71c9-4420-9a1d-fdb04a35d1de/" ], "deployed_datetime": "Tue, 15 Mar 2016 17:18:17 +0000", "apodo": "nodo couchbase", "dockercloud_action_uri": "", "nombre": "nodo couchbase" } |
El cuadro de mandos en cloud.docker.com se actualiza para mostrar:
También se puede ver más información sobre cada nodo:
Crear un nuevo servicio en la nube Docker
Crear un servicio de nube Docker:
1 2 |
docker-nube servicio crear --etiqueta couchbase -p 8091:8091 -p 8092:8092 -p 8093:8093 -p 11210:11210 arungupta/couchbase 936dbe58-7c7c-4289-837a-15d29128e5ea |
Si existen clusters de nodos múltiples, entonces --tag
se utiliza para asignar un servicio a un clúster de nodos. docker-cli#10 es archivado para asegurar que múltiples puertos puedan ser expuestos usando el formato -p 8091-8093:8091-8093. Esto se alineará con la CLI de docker.
La imagen Docker utilizada aquí es arungupta/couchbase
. Esta imagen se basa en el couchbase
imagen en Centro Docker y lo preconfigura para diferentes servicios.
Inicie el servicio Docker Cloud:
1 2 |
docker-nube servicio iniciar 834343fd-b1d5-4d66-a2cd-69d27a471658 834343fd-b1d5-4d66-a2cd-69d27a471658 |
El salpicadero actualizado tiene el siguiente aspecto:
Obtenga los registros de Docker Cloud Service:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
docker-nube servicio Registros 834343fd-b1d5-4d66-a2cd-69d27a471658 couchbase-d96eed5d-1 | 2016-03-14T22:54:04.826000846Z Inicio Couchbase Servidor -- Web INTERFAZ DE USUARIO disponible en http://:8091 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.832855273Z * Prueba 127.0.0.1... couchbase-d96eed5d-1 | 2016-03-14T22:54:19.833816400Z % Total % Recibido % Xferd Media Velocidad Tiempo Tiempo Tiempo Actual couchbase-d96eed5d-1 | 2016-03-14T22:54:19.834647384Z Dload Cargar Total Gastado Izquierda Velocidad 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Conectado a 127.0.0.1 (127.0.0.1) puerto 8091 (#0) couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835659864Z > POST /piscinas/por defecto HTTP/1.1 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835705633Z > Usuario-Agente: rizo/7.40.0-DEV couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835764766Z > Anfitrión: 127.0.0.1:8091 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835808491Z > Acepte: */* couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835849972Z > Content-Length: 36 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835890805Z > Content-Type: application/x-www-form-urlencoded couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835951739Z > couchbase-d96eed5d-1 | 2016-03-14T22:54:19.836153748Z } [36 bytes de datos] couchbase-d96eed5d-1 | 2016-03-14T22:54:19.836431490Z * subida completamente enviada: 36 de 36 bytes couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838702601Z < HTTP/1.1 200 OK couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838831946Z < Servidor: Couchbase Server couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838882039Z < Pragma: no-cache couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838929456Z < Fecha: Lun, 14 Mar 2016 22:54:19 GMT couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838944199Z < Content-Length: 0 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838973658Z < Cache-Control: no-cache couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838984780Z POST /node/controller/setupServices HTTP/1.1 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.845729619Z > User-Agent: curl/7.40.0-DEV couchbase-d96eed5d-1 | 2016-03-14T22:54:19.845805193Z > Host: 127.0.0.1:8091 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.845858410Z > Accept: */* couchbase-d96eed5d-1 | 2016-03-14T22:54:19.845911479Z > Contenido-Longitud: 26 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.845986653Z > Contenido-Tipo: aplicación/x-www-formulario-urlencoded couchbase-d96eed5d-1 | 2016-03-14T22:54:19.846040578Z > couchbase-d96eed5d-1 | 2016-03-14T22:54:19.846312512Z } [26 bytes datos] couchbase-d96eed5d-1 | 2016-03-14T22:54:19.846561659Z * cargar completamente enviado fuera de: 26 fuera de 26 bytes couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847024846Z < HTTP/1.1 200 OK couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847082032Z < Servidor: Couchbase Servidor couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847157246Z < Pragma: no-caché couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847211690Z < Fecha: Lun, 14 Mar 2016 22:54:19 GMT couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847266024Z < Contenido-Longitud: 0 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847344403Z < Caché-Controlar: no-caché couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847411160Z < 100 26 0 0 100 26 0 6056 --:--:-- --:--:-- --:--:-- 8666 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.849284426Z * Conexión #0 to host 127.0.0.1 left intact couchbase-d96eed5d-1 | 2016-03-14T22:54:19.853702443Z * Trying 127.0.0.1... couchbase-d96eed5d-1 | 2016-03-14T22:54:19.853890120Z % Total % Recibido % Xferd Velocidad media Hora Hora Hora Actual couchbase-d96eed5d-1 | 2016-03-14T22:54:19.853943309Z Dload Upload Total Gastado Velocidad Izquierda 0 0 0 0 0 0 0 --:--:--:--:--:--:-- 0* Conectado a 127.0.0.1 (127.0.0.1) puerto 8091 (#0) couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854112174Z > POST /settings/web HTTP/1.1 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854169870Z > Usuario-Agente: rizo/7.40.0-DEV couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854223412Z > Anfitrión: 127.0.0.1:8091 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854278756Z > Acepte: */* couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854335649Z > Contenido-Longitud: 50 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854391073Z > Contenido-Tipo: aplicación/x-www-formulario-urlencoded couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854447141Z > couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854683623Z } [50 bytes datos] couchbase-d96eed5d-1 | 2016-03-14T22:54:19.855024680Z * cargar completamente enviado fuera de: 50 fuera de 50 bytes couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859378932Z < HTTP/1.1 200 OK couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859530830Z < Servidor: Couchbase Servidor couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859611527Z < Pragma: no-caché couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859794083Z < Fecha: Lun, 14 Mar 2016 22:54:19 GMT couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859848224Z < Contenido-Tipo: aplicación/json couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859912932Z < Contenido-Longitud: 39 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859957829Z < Caché-Controlar: no-caché couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859972017Z < couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859986584Z { [39 bytes datos] 100 89 100 39 100 50 6060 7770 --:--:-- --:--:-- --:--:-- 8333 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.860221103Z * Conexión #0 al host 127.0.0.1 intacto couchbase-d96eed5d-1 | 2016-03-14T22:54:19.860730000Z {"newBaseUri":"http://127.0.0.1:8091/"}/punto de entrada.sh couchbase-servidor |
El registro muestra la salida del API REST de Couchbase invocado para configurar el servidor Couchbase.
Acceso al servidor Couchbase en la nube Docker
Inspeccione el servicio Docker Cloud para los puertos de contenedor expuestos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
docker-nube servicio inspeccionar 936dbe58-7c7c-4289-837a-15d29128e5ea | jq ".container_ports" [ { "protocolo": "tcp", "puerto_exterior": 8091, "puerto_interior": 8091, "nombre_puerto": "desconocido", "publicado": verdadero, "endpoint_uri": "tcp://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8091/" }, { "protocolo": "tcp", "puerto_exterior": 8092, "puerto_interior": 8092, "nombre_puerto": "desconocido", "publicado": verdadero, "endpoint_uri": "tcp://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8092/" }, { "protocolo": "tcp", "puerto_exterior": 8093, "puerto_interior": 8093, "nombre_puerto": "desconocido", "publicado": verdadero, "endpoint_uri": "tcp://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8093/" }, { "protocolo": "tcp", "puerto_exterior": 11210, "puerto_interior": 11210, "nombre_puerto": "desconocido", "publicado": verdadero, "endpoint_uri": "tcp://couchbase-b9132b42.936dbe58.svc.dockerapp.io:11210/" } ] |
Para ser más específicos, el URI exacto para el archivo Consola web de Couchbase se puede obtener como:
1 2 |
docker-nube servicio inspeccionar 936dbe58-7c7c-4289-837a-15d29128e5ea | jq ".container_ports[0].endpoint_uri" | sed s/tcp/http/g "http://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8091/" |
Acceda a la Consola Web de Couchbase en http://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8091/ para ver la pantalla de inicio de sesión de la Consola Web de Couchbase. Introduzca las credenciales de contraseña de Administrador
y contraseña
.
Y el Consola web de Couchbase parece:
Finalizar el servicio de nube Docker y el nodo
Compruebe la lista de servicios de Docker Cloud en ejecución:
1 2 3 |
docker-nube servicio ps NOMBRE UUID ESTADO #CONTAINERS IMAGE DEPLOYED PUBLIC DNS STACK couchbase-b9132b42 936dbe58 ▶ Ejecutar 1 arungupta/couchbase:última 10 minutos hace couchbase-b9132b42.936dbe58.svc.dockerapp.io |
Dar de baja el servicio:
1 |
docker-nube servicio terminar 936dbe58 |
Comprueba la lista de nodos:
1 2 3 |
docker-nube nodo ls UUID FQDN LASTSEEN ESTADO CLÚSTER DOCKER_VER 5c4c78e0 5c4c78e0-71c9-4420-9a1d-fdb04a35d1de.nodo.dockerapp.io 35 segundos hace ▶ Desplegado couchbase-nodo 1.9.1-cs2 |
Termina el nodo como:
1 |
docker-nube nodo rm 5c4c78e0 |
Referencias de Docker Cloud
- Primeros pasos con Docker Cloud
- Tutoriales sobre la nube Docker
- API de Docker Cloud
- Preguntas sobre Foros Docker
En este blog has aprendido:
- Conceptos clave de Docker Cloud
- Cómo crear un nuevo nodo Docker Cloud
- Cómo instalar Docker Cloud CLI
- Cómo crear un nuevo servicio en la nube Docker
- Acceso al servidor Couchbase en la nube Docker
- Cómo dar de baja el servicio en la nube y el nodo Docker
Que aproveche Fuente: https://www.couchbase.com/blog/getting-started-docker-cloud/