Docker é uma plataforma Open Source escrito em Go, que facilita a criação e administração de ambientes isolados.

Com Docker, você pode ter diversas versões da mesma biblioteca rodando sem conflito, pode trabalhar em outros projetos sem comprometer os recursos da máquina e sem a necessidade de levantar uma Máquina Virtual inteira somente para isso, e versionar a configuração necessária para certa aplicação rodar.

Como funciona?

O Docker possibilita o empacotamento de uma aplicação ou até mesmo um ambiente inteiro dentro de um container, e a partir desse momento o ambiente inteiro torna-se portável para qualquer outro Host que contenha o Docker instalado.

Container vs Máquina virtual

Ambos possuem recursos similares de isolamento e alocação – mas uma abordagem arquitetônica diferente permite que os containers sejam mais portáteis e eficientes.

Máquina virtual: incluem o aplicativo, bibliotecas necessárias e todo um sistema operacional – todos os quais podem chegar a dezenas de GBs.

Container: incluem o aplicativo e todas as suas dependências – mas compartilham o kernel com outros containers, executando como processos isolados no espaço do usuário no sistema operacional do host. Os containers de Docker não estão ligados a nenhuma infra-estrutura específica: funcionam em qualquer computador, em qualquer infra-estrutura e em qualquer nuvem.

Na imagem abaixo, vemos como funciona as máquinas virtuais. Além da Infraestrutura e do Sistema Operacional da máquina principal, temos o Hypervisor, o controlador do processo de virtualização, encima do Hypervisor temos um Sistema Operacional completo rodando. O que resulta em, grande consumo de memória.

docker-vmNa próxima imagem, já podemos observar como funciona o Docker. O que muda é a Docker Engine, que ao invés de instalar o SO completo, permite a criação de diversos containers.
docker-containers

Instalação

  1. Ubuntu

Atualize o apt

$ sudo apt-get update

Instale o docker
$ sudo apt-get install docker-engine

Inicialize o docker
$ sudo service docker start

Verifique se está tudo ok com sua instalação rodando a seguinte imagem
$ sudo docker run hello-world

2. Windows

Basta seguir este tutorial.

3. Mac

Basta seguir este tutorial.

4. Arch
Você precisa ter instalado os seguintes pacotes:

  • bridge-utils
  • device-mapper
  • iproute2
  • sqlite

Tudo que você precisa, é do comando a seguir:

$ sudo pacman -S docker

Para o pacote AUR execute:
$ yaourt -S docker-git

Para inicializar o docker, execute:
$ sudo systemctl start docker

Para mais informações sobre instalação, acesse o link.