====== 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.