Implementação do Docker na Amazon usando o Tutum explicou como implantar uma imagem do Docker no Tutorial do Docker. Tutum agora é Nuvem do Docker.
Ler Anunciando o Docker Cloud para obter mais detalhes.
Os principais recursos do Docker Cloud são:
- Autenticação usando o Docker ID
- Integração com o Docker Hub
- Suporte para Repositórios oficiais do Docker
- Mecanismo Docker com suporte comercial
- Capacidade de implementar e dimensionar seus aplicativos usando GUI, API e CLI
Este blog mostrará:
- Conceitos-chave do Docker Cloud
- Como criar um novo nó do Docker Cloud
- Como instalar o Docker Cloud CLI
- Como criar um novo Docker Cloud Service
- Acessar o servidor Couchbase no Docker Cloud
- Como encerrar o Docker Cloud Service e o Node
E, por fim, ele deixará algumas referências para os documentos do Docker Cloud.
O blog usará Servidor Couchbase - um banco de dados de documentos JSON de código aberto, altamente dimensionável, para a imagem do Docker.
Docker Cloud TL;DR
Aqui estão os comandos rápidos para executar uma imagem do Docker usando o Docker Cloud na Amazon:
1 2 3 4 5 |
cerveja instalar doca-nuvem doca-nuvem nodecluster criar -t 1 --etiqueta couchbase couchbase-nó aws nós-oeste-1 m3.grande doca-nuvem serviço criar --etiqueta couchbase -p 8091:8091 -p 8092:8092 -p 8093:8093 -p 11210:11210 arungupta/couchbase doca-nuvem serviço iniciar {SERVICE_ID} doca-nuvem serviço inspecionar {SERVICE_ID} | jq ".container_ports[0].endpoint_uri" | sed 's/tcp/http/g' |
Mais detalhes abaixo.
Principais conceitos da nuvem do Docker
Vamos entender os principais conceitos do Docker Cloud:
- Nós são hosts/VMs Linux individuais usados para implementar e executar seus aplicativos. Novos nós podem ser provisionados para aumentar a capacidade. O Docker Cloud não fornece serviços de hospedagem. Os nós são provisionados usando servidores físicos, máquinas virtuais ou provedores de nuvem.
- Cluster de nóss são grupos lógicos de nós do mesmo tipo. Os clusters de nós permitem dimensionar a infraestrutura com facilidade, provisionando mais nós.
- Serviços são grupos lógicos de contêineres da mesma imagem. Os serviços simplificam o dimensionamento do aplicativo em diferentes nós.
O Docker Cloud pode ser gerenciado com Web, CLI ou API REST. Este blog usará a CLI do Docker Cloud para executar todos os comandos.
Instalar a CLI do Docker Cloud
Instale o Docker Cloud CLI:
1 2 3 4 5 |
cerveja instalar doca-nuvem ==> Download https://homebrew.bintray.com/bottles/docker-cloud-1.0.2.yosemite.bottle.tar.gz Já baixado: /Biblioteca/Caches/Homebrew/doca-nuvem-1.0.2.yosemite.bottle.tar.gz ==> Derramamento doca-nuvem-1.0.2.yosemite.bottle.tar.gz ? /usr/local/Adega/doca-nuvem/1.0.2: 482 arquivos, 4.1M |
As instruções completas de instalação estão em Instalação da CLI. Verificar versão:
1 2 |
doca-nuvem -v doca-nuvem 1.0.2 |
O conjunto completo de comandos é:
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: doca-nuvem [-h] [-v] {ação,contêiner,evento,executar,login,nó,nodecluster,repositório,executar,serviço,pilha,etiqueta,gatilho,para cima} ... Docker Nuvem CLI opcional argumentos: -h, --ajuda show este ajuda mensagem e saída -v, --versão show programa's versão número e saída Docker Nuvem CLI comandos: {ação,contêiner,evento,executar,login,nó,nodecluster,repositório,executar,serviço,pilha,etiqueta,gatilho,para cima} ação Ação-relacionados operações contêiner Contêineres-relacionados operações evento Obter real tempo Docker Nuvem eventos executar Executar a comando em a em execução contêiner login Por favor uso "docker login" para registro em Docker Nuvem nó Nó-relacionados operações nodecluster NodeCluster-relacionados operações repositório Repositório-relacionados operações executar Criar e executar a novo serviço serviço Serviço-relacionados operações pilha Pilha-relacionados operações etiqueta Etiqueta-relacionados operações gatilho Gatilho-relacionados operações para cima Criar e implantação a pilha |
Salve as credenciais de login:
1 2 3 4 5 6 |
doca login Nome de usuário: arungupta Senha: E-mail: arun.gupta@gmail.com AVISO: login credenciais salvos em /Usuários/arungupta/.doca/configuração.json Login Bem-sucedido |
Criar um novo nó do Docker Cloud
Registre as credenciais do seu provedor de nuvem com IU da Web do Docker Cloud conforme explicado em Link para um provedor de serviços de nuvem. Amazon, Digital Ocean, Azure e outros há suporte para provedores de nuvem.
Crie um novo cluster de nós com um único nó:
1 2 |
doca-nuvem nodecluster criar -t 1 --etiqueta couchbase couchbase-nó aws nós-oeste-1 m3.grande 42a34e04-02e1-47be-bf87-ec06e0e0b604 |
Esse cluster de nós tem um único nó (-t 1
) e usa a tag "couchbase" (--tag couchbase
). Os últimos quatro parâmetros são o nome do nodecluster (nó couchbase
, provedor (aws
, região (us-west-1
e nodetype (m3.large
).
Cada nó desse cluster de nós receberá a tag atribuída. Isso será usado posteriormente para atribuir serviços a um nó ou cluster de nós específico.
O status desse cluster de nós pode ser verificado:
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 |
doca-nuvem nodecluster inspecionar 42a34e04-02e1-47be-bf87-ec06e0e0b604 | jq { "disco": 60, "uuid": "42a34e04-02e1-47be-bf87-ec06e0e0b604", "tags": [ { "name" (nome): "couchbase" } ], "current_num_nodes": 1, "region" (região): "/api/infra/v1/region/aws/us-west-1/", "target_num_nodes": 1, "estado": "Implantado", "node_type": "/api/infra/v1/nodetype/aws/m3.large/", "resource_uri": "/api/infra/v1/nodecluster/42a34e04-02e1-47be-bf87-ec06e0e0b604/", "destroyed_datetime": nulo, "provider_options": {}, "nós": [ "/api/infra/v1/node/5c4c78e0-71c9-4420-9a1d-fdb04a35d1de/" ], "deployed_datetime" (data de implantação): "Tue, 15 Mar 2016 17:18:17 +0000", "nickname" (apelido): "couchbase-node", "dockercloud_action_uri": "", "name" (nome): "couchbase-node" } |
O painel de controle em cloud.docker.com é atualizado para mostrar:
Também é possível ver mais informações sobre cada nó:
Criar um novo serviço do Docker Cloud
Crie um serviço do Docker Cloud:
1 2 |
doca-nuvem serviço criar --etiqueta couchbase -p 8091:8091 -p 8092:8092 -p 8093:8093 -p 11210:11210 arungupta/couchbase 936dbe58-7c7c-4289-837a-15d29128e5ea |
Se houver vários clusters de nós, então --tag
é usado para atribuir um serviço a um cluster de nós. docker-cli#10 é arquivado para garantir que várias portas possam ser expostas usando o formato -p 8091-8093:8091-8093. Isso será alinhado com a CLI do docker.
A imagem do Docker usada aqui é arungupta/couchbase
. Esta imagem é baseada na imagem oficial do couchbase
imagem em Docker Hub e pré-configura-o para diferentes serviços.
Inicie o serviço Docker Cloud:
1 2 |
doca-nuvem serviço iniciar 834343fd-b1d5-4d66-a2cd-69d27a471658 834343fd-b1d5-4d66-a2cd-69d27a471658 |
O painel de controle atualizado tem a seguinte aparência:
Obtenha os registros do 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 |
doca-nuvem serviço registros 834343fd-b1d5-4d66-a2cd-69d27a471658 couchbase-d96eed5d-1 | 2016-03-14T22:54:04.826000846Z Início Couchbase Servidor -- Web IU disponível em http://:8091 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.832855273Z * Tentando 127.0.0.1... couchbase-d96eed5d-1 | 2016-03-14T22:54:19.833816400Z % Total % Recebido % Xferd Média Velocidade Tempo Tempo Tempo Atual couchbase-d96eed5d-1 | 2016-03-14T22:54:19.834647384Z Dload Carregar Total Gastos Esquerda Velocidade 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Conectado para 127.0.0.1 (127.0.0.1) porto 8091 (#0) couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835659864Z > POST /piscinas/padrão HTTP/1.1 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835705633Z > Usuário-Agente: enrolar/7.40.0-DEV couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835764766Z > Anfitrião: 127.0.0.1:8091 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.835808491Z > Aceitar: */* 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 dados] couchbase-d96eed5d-1 | 2016-03-14T22:54:19.836431490Z * upload completamente enviado: 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 < Server: Servidor Couchbase couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838882039Z < Pragma: no-cache couchbase-d96eed5d-1 | 2016-03-14T22:54:19.838929456Z < Date: Mon, 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 > Aceitar: */* couchbase-d96eed5d-1 | 2016-03-14T22:54:19.845911479Z > Conteúdo-Comprimento: 26 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.845986653Z > Conteúdo-Tipo: aplicativo/x-www-formulário-codificado por url couchbase-d96eed5d-1 | 2016-03-14T22:54:19.846040578Z > couchbase-d96eed5d-1 | 2016-03-14T22:54:19.846312512Z } [26 bytes dados] couchbase-d96eed5d-1 | 2016-03-14T22:54:19.846561659Z * carregar completamente enviado desligado: 26 fora 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: não-cache couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847211690Z < Data: Mês, 14 Mar 2016 22:54:19 GMT couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847266024Z < Conteúdo-Comprimento: 0 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.847344403Z < Cache-Controle: não-cache 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 * Conexão #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 % Recebido % Xferd Velocidade média Tempo Tempo Tempo Tempo Atual couchbase-d96eed5d-1 | 2016-03-14T22:54:19.853943309Z Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 0 --:--:--:--:--:-- --:--:--:-- 0* Connected to 127.0.0.1 (127.0.0.1) port 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 > Usuário-Agente: enrolar/7.40.0-DEV couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854223412Z > Anfitrião: 127.0.0.1:8091 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854278756Z > Aceitar: */* couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854335649Z > Conteúdo-Comprimento: 50 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854391073Z > Conteúdo-Tipo: aplicativo/x-www-formulário-codificado por url couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854447141Z > couchbase-d96eed5d-1 | 2016-03-14T22:54:19.854683623Z } [50 bytes dados] couchbase-d96eed5d-1 | 2016-03-14T22:54:19.855024680Z * carregar completamente enviado desligado: 50 fora 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: não-cache couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859794083Z < Data: Mês, 14 Mar 2016 22:54:19 GMT couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859848224Z < Conteúdo-Tipo: aplicativo/json couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859912932Z < Conteúdo-Comprimento: 39 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859957829Z < Cache-Controle: não-cache couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859972017Z < couchbase-d96eed5d-1 | 2016-03-14T22:54:19.859986584Z { [39 bytes dados] 100 89 100 39 100 50 6060 7770 --:--:-- --:--:-- --:--:-- 8333 couchbase-d96eed5d-1 | 2016-03-14T22:54:19.860221103Z * Conexão #0 para o host 127.0.0.1 permaneceu intacto couchbase-d96eed5d-1 | 2016-03-14T22:54:19.860730000Z {"newBaseUri":"http://127.0.0.1:8091/"}/ponto de entrada.sh couchbase-servidor |
O registro mostra a saída do API REST do Couchbase invocado para configurar o servidor Couchbase.
Acessar o servidor Couchbase no Docker Cloud
Inspecione o serviço Docker Cloud em busca das portas de contêineres expostas:
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 |
doca-nuvem serviço inspecionar 936dbe58-7c7c-4289-837a-15d29128e5ea | jq ".container_ports" [ { "protocolo": "tcp", "outer_port": 8091, "inner_port": 8091, "port_name": "desconhecido", "publicado": verdadeiro, "endpoint_uri": "tcp://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8091/" }, { "protocolo": "tcp", "outer_port": 8092, "inner_port": 8092, "port_name": "desconhecido", "publicado": verdadeiro, "endpoint_uri": "tcp://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8092/" }, { "protocolo": "tcp", "outer_port": 8093, "inner_port": 8093, "port_name": "desconhecido", "publicado": verdadeiro, "endpoint_uri": "tcp://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8093/" }, { "protocolo": "tcp", "outer_port": 11210, "inner_port": 11210, "port_name": "desconhecido", "publicado": verdadeiro, "endpoint_uri": "tcp://couchbase-b9132b42.936dbe58.svc.dockerapp.io:11210/" } ] |
Para ser mais específico, o URI exato do Console da Web do Couchbase pode ser obtido como:
1 2 |
doca-nuvem serviço inspecionar 936dbe58-7c7c-4289-837a-15d29128e5ea | jq ".container_ports[0].endpoint_uri" | sed 's/tcp/http/g' "http://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8091/" |
Acesse o Console da Web do Couchbase em http://couchbase-b9132b42.936dbe58.svc.dockerapp.io:8091/ para ver a tela de login do Console da Web do Couchbase. Insira as credenciais de senha de Administrador
e senha
.
E o Console da Web do Couchbase parece:
Encerrar o serviço e o nó do Docker Cloud
Verifique a lista de serviços do Docker Cloud em execução:
1 2 3 |
doca-nuvem serviço ps NOME UUID STATUS #CONTAINERS IMAGEM IMPLEMENTADA PILHA DE DNS PÚBLICOS couchbase-b9132b42 936dbe58 ▶ Em execução 1 arungupta/couchbase:mais recente 10 minutos atrás couchbase-b9132b42.936dbe58.svc.dockerapp.io |
Encerrar o serviço:
1 |
doca-nuvem serviço terminar 936dbe58 |
Verifique a lista de nós:
1 2 3 |
doca-nuvem nó ls UUID FQDN LASTSEEN STATUS CLUSTER DOCKER_VER 5c4c78e0 5c4c78e0-71c9-4420-9a1d-fdb04a35d1de.nó.aplicativo de encaixe.io 35 segundos atrás ▶ Implementado couchbase-nó 1.9.1-cs2 |
Terminar o nó como:
1 |
doca-nuvem nó rm 5c4c78e0 |
Referências do Docker Cloud
- Primeiros passos com o Docker Cloud
- Tutoriais de nuvem do Docker
- API do Docker Cloud
- Perguntas sobre Fóruns do Docker
Neste blog, você aprendeu:
- Conceitos-chave do Docker Cloud
- Como criar um novo nó do Docker Cloud
- Como instalar o Docker Cloud CLI
- Como criar um novo Docker Cloud Service
- Acessar o servidor Couchbase no Docker Cloud
- Como encerrar o Docker Cloud Service e o Node
Aproveite! Fonte: https://www.couchbase.com/blog/getting-started-docker-cloud/