====== Docker com Vagrant (para MACOSX) ======
Se você já está usando Linux , você não precisa executar esta parte. Mas no OS X, você precisa rodar o Docker em uma imagem de um Linux em um Virtualbox.
===== Vagrantfile =====
vagrant.configure("2") do |config|
config.vm.box = "raring"
config.vm.box_url = "http://cloud-images.ubuntu.com/raring/current/raring-server-cloudimg-vagrant-amd64-disk1.box"
# vamos redirecionar a porta 8000 da VM para a porta 8000 no host (OS X)
config.vm.network :forwarded_port, host: 8000, guest: 8000
config.vm.synced_folder("vagrant-docker", "/vagrant")
# Adicionar um pouco mais de memória nunca é demais.
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", 2048]
end
end
===== Criar a pasta compartilhada =====
mkdir vagrant-docker
===== Bootar a VM com Vagrant =====
$ vagrant up
Saída:
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'raring'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] -- 8000 => 8000 (adapter 1)
[default] Running 'pre-boot' VM customizations...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Mounting shared folders...
[default] -- /vagrant
===== SSH no VM =====
Digite:
$ vagrant ssh
Saída:
Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-29-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Fri Aug 30 10:43:37 UTC 2013
System load: 0.25 Processes: 80
Usage of /: 2.4% of 39.33GB Users logged in: 0
Memory usage: 8% IP address for eth0: 10.0.2.15
Swap usage: 0%
Graph this data and manage this system at https://landscape.canonical.com/
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
Use Juju to deploy your cloud instances and workloads:
https://juju.ubuntu.com/#cloud-raring
0 packages can be updated.
0 updates are security updates.
vagrant@vagrant-ubuntu-raring-64:~$
===== Instalar o Docker =====
===== puxe uma imagem de base =====
vagrant@vagrant-ubuntu-raring-64:~$ sudo docker pull ubuntu
Saída:
Pulling repository ubuntu
Pulling image 8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c (precise) from ubuntu
Pulling 8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c metadata
Pulling 8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c fs layer
Downloading 58.34 MB/58.34 MB (100%)
Pulling image b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc (quantal) from ubuntu
Pulling b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc metadata
Pulling b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc fs layer
Downloading 10.24 kB/10.24 kB (100%)
Pulling 27cf784147099545 metadata
Pulling 27cf784147099545 fs layer
Downloading 94.86 MB/94.86 MB (100%)
vagrant@vagrant-ubuntu-raring-64:~$
===== Agora vamos ver se ele está funcionando =====
vagrant@vagrant-ubuntu-raring-64:~$ sudo docker run ubuntu
Saída:
/bin/echo hello there, docker user
hello there, docker user
===== Saber mais sobre a plataforma que o recipiente tem =====
vagrant@vagrant-ubuntu-raring-64:~$ sudo docker run ubuntu uname -a
Saída:
Linux cf95ac04d25d 3.8.0-29-generic #42-Ubuntu SMP Tue Aug 13 19:40:39 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
===== Para ver o que as imagens estão disponíveis localmente =====
vagrant@vagrant-ubuntu-raring-64:~$ sudo docker images
Saída:
REPOSITORY TAG ID CREATED SIZE
ubuntu 12.04 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
ubuntu 12.10 b750fe79269d 5 months ago 24.65 kB (virtual 180.1 MB)
ubuntu latest 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
ubuntu precise 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
ubuntu quantal b750fe79269d 5 months ago 24.65 kB (virtual 180.1 MB)
===== Uma aplicação Django básica no Docker =====
vagrant@vagrant-ubuntu-raring-64:~$ DJANGO_APP=$(sudo docker run -d -i -t -p 8000:8000 ubuntu /bin/bash)
-i
-t
-p 8000: 8000: avisa ao Docker para redirecionar a porta 8000 do recipiente para a porta 8000 do host (Sim , este é um double -forward se você estiver usando Virtualbox).
Ver:
vagrant@vagrant-ubuntu-raring-64:~$ docker ps
Anexando:
vagrant@vagrant-ubuntu-raring-64:~$ docker attach $DJANGO_APP
Saída:
root@807f3eb43b5c:/#
Editar o arquivo /etc/apt/sources.list
root@2f6a9bcda315:/# nano /etc/apt/sources.list
Incluir o repositorio multiverse em /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu precise main universe multiverse
Atualizar os pacotes
root@2f6a9bcda315:/# apt-get update
Instalar o PIP
root@2f6a9bcda315:/# apt-get install python-pip
root@2f6a9bcda315:/# pip install virtualenv
root@2f6a9bcda315:/# apt-get install libpq-dev python-dev
Executar o Django
root@3623418e0f85:/docker_django# python manage.py runserver
Agora, se você carregar 'http://localhost:8000 /' no browser do sistema operacional hospedeiro, você deve ver a página de boas-vindas do Django.