O Docker 1.10 já foi lançado! 
Leia sobre todos os Novos recursos no Docker 1.10. Um breve resumo:
- Novo formato de arquivo Compose
- Rede muito melhor
- Segurança muito melhor
- Swarm torna-se 1.1, com integração do Mesos
Ler Notas de versão do Docker 1.10. Vamos dar uma olhada em alguns dos principais componentes.
Máquina do Docker 0.6.0
O Docker Machine facilita muito a criação de hosts do Docker em seu computador, em provedores de nuvem e dentro de seu próprio data center. Ele cria servidores, instala o Docker neles e, em seguida, configura o cliente Docker para se comunicar com eles. A versão mais recente pode ser instalada como:
|
1 2 3 4 5 6 7 8 |
~> curl -L https://github.com/docker/machine/releases/download/v0.6.0/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine && ~> chmod +x /usr/local/bin/docker-machine % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 601 0 601 0 0 362 0 --:--:-- 0:00:01 --:--:-- 362 100 36.6M 100 36.6M 0 0 2822k 0 0:00:13 0:00:13 --:--:-- 4899k ~ > docker-machine version docker-machine version 0.6.0, build e27fb87 |
O docker-machine agora mostra a versão do servidor Docker:
|
1 2 3 4 |
~ > docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS couchbase - virtualbox Running tcp://192.168.99.100:2376 v1.9.1 netbeans - virtualbox Saved Unknown |
A versão mais recente do servidor é a 1.10. E assim atualização da plataforma pode ser usado para corrigir isso:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
~ > docker-machine upgrade couchbase Waiting for SSH to be available... Detecting the provisioner... Upgrading docker... Stopping machine to do the upgrade... Upgrading machine "couchbase"... Default Boot2Docker ISO is out-of-date, downloading the latest release... Latest release for github.com/boot2docker/boot2docker is v1.10.0 Downloading /Users/arungupta/.docker/machine/cache/boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v1.10.0/boot2docker.iso... 0%....10%....20%....30%....40%....50%....60%....70%....80%....90%....100% Copying /Users/arungupta/.docker/machine/cache/boot2docker.iso to /Users/arungupta/.docker/machine/machines/couchbase/boot2docker.iso... Starting machine back up... (couchbase) Check network to re-create if needed... (couchbase) Waiting for an IP... Restarting docker... |
A lista atualizada de máquinas agora é mostrada como:
|
1 2 3 4 |
~ > docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS couchbase - virtualbox Running tcp://192.168.99.100:2376 v1.10.0 netbeans - virtualbox Saved Unknown |
Observe que a versão do Docker agora é 1.10. Configure as variáveis de ambiente de modo que o cliente Docker possa se comunicar com ele:
|
1 |
eval $(docker-machine env couchbase) |
Cliente Docker 1.10
Vamos baixar o cliente mais recente para nos conectarmos a esse mecanismo do Docker.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
> curl https://get.docker.com/builds/Darwin/x86_64/docker-latest > /usr/local/bin/docker % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 10.0M 100 10.0M 0 0 3836k 0 0:00:02 0:00:02 --:--:-- 3836k > docker version Client: Version: 1.10.0 API version: 1.22 Go version: go1.5.3 Git commit: 590d5108 Built: Thu Feb 4 19:55:25 2016 OS/Arch: darwin/amd64 Server: Version: 1.10.0 API version: 1.22 Go version: go1.5.3 Git commit: 590d5108 Built: Thu Feb 4 19:55:25 2016 OS/Arch: linux/amd64 |
As versões do cliente e do servidor são mostradas separadamente. Execute o contêiner do Couchbase como:
|
1 2 |
~ > docker run -d -p 8091-8093:8091-8093 -p 11210:11210 arungupta/couchbase-node 4783d72298d1f27255f12cf765ed1121c7656d09a866bc350354e38787627a79 |
Isso inicia um servidor Couchbase totalmente configurado. Ele pode ser acessado em 192.168.99.100:8091 e tem a aparência mostrada: 
Observe que 192.168.99.100 é obtido usando máquina doca ip . Portal do desenvolvedor do Couchbase fornecem mais detalhes sobre o Couchbase Server.
Docker Compose 1.6.0
Docker Compose é uma ferramenta para definir e executar aplicativos complexos com o Docker. Com o Compose, você define um aplicativo de vários contêineres em um único arquivo e, em seguida, executa seu aplicativo com um único comando que faz tudo o que precisa ser feito para colocá-lo em execução. Saiba mais sobre o Compose Docker Compose 1.6.0. Instale a versão mais recente:
|
1 2 3 4 5 6 7 |
curl -L https://github.com/docker/compose/releases/download/1.6.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 601 0 601 0 0 1067 0 --:--:-- --:--:-- --:--:-- 1065 100 4837k 100 4837k 0 0 945k 0 0:00:05 0:00:05 --:--:-- 1426k chmod +x /usr/local/bin/docker-compose |
Os sinalizadores experimentais --x-networking e --x-network-driverintroduzido no Compose 1.5, foi removido. Não é mais experimental e é a maneira recomendada de permitir a comunicação entre contêineres. O Compose 1.6.0 requer o Docker Engine 1.9.1 ou posterior, ou 1.10.0 se você estiver usando a versão 2 do formato Compose File.
Atualização do arquivo Compose
O Compose 1.6 apresenta uma nova versão do arquivo Compose. Leia mais detalhes sobre Atualização do arquivo Compose. O Compose 1.6 continuará a executar arquivos da versão anterior do Compose. Mas agora a rede e os volumes são cidadãos de primeira classe. Aqui está um exemplo da versão 1 do arquivo Compose:
|
1 2 3 4 5 6 7 |
mycouchbase: image: arungupta/couchbase-node ports: - 8091:8091 - 8092:8092 - 8093:8093 - 11210:11210 |
Aqui está a versão 2 do arquivo Compose:
|
1 2 3 4 5 6 7 8 9 |
version: "2" services: mycouchbase: image: arungupta/couchbase ports: - 8091:8091 - 8092:8092 - 8093:8093 - 11210:11210 |
Para casos de uso simples, as duas principais alterações são:
- Adicionar um
versão: '2'na parte superior do arquivo. - Indentifique o arquivo inteiro em um nível e coloque um
serviços:na parte superior.
Os serviços em execução nesse arquivo Compose são:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
~ > docker-compose up -d Creating network "couchbase_default" with the default driver Pulling mycouchbase (arungupta/couchbase:latest)... latest: Pulling from arungupta/couchbase a50d2b3f7efa: Already exists 27e1b0c788a2: Already exists 622b8fa00f81: Already exists a3ed95caeb02: Pull complete 0bc56fd185bd: Already exists 10f0979b6cbd: Already exists 9be3d8460ed2: Already exists 59e718ec07e9: Already exists a0b9aa29408d: Already exists e2717fa0b388: Pull complete Digest: sha256:9131c5a283d79e11b6556c94b0b0f8ceba7daf5ba5982bac850100099019959f Status: Downloaded newer image for arungupta/couchbase:latest Creating couchbase_mycouchbase_1 |
Isso inicia um servidor Couchbase totalmente configurado com base na imagem, conforme explicado em github.com/arun-gupta/docker-images/tree/master/couchbase-node.
Docker Swarm 1.1
Docker Swarm é o clustering nativo para o Docker. Ele permite que você crie e acesse um pool de hosts do Docker usando o conjunto completo de ferramentas do Docker. Como o Docker Swarm atende à API padrão do Docker, qualquer ferramenta que já se comunique com um daemon do Docker pode usar o Swarm para escalar de forma transparente para vários hosts. Um novo suporte experimental para reprogramação de contêineres em caso de falha de nó foi adicionado. Leia mais detalhes sobre a configuração do Cluster do Docker Swarm. Por fim, aqui estão alguns links úteis:
- Caixa de ferramentas do Docker 1.10
- Notas de versão do Docker 1.10
- Melhorias na segurança do Docker 1.10
- Docker para desenvolvedores Java
Aproveite!