Archives / Snippets / Projets

% http://fr.slideshare.net/jpetazzo

Architecture, architecture...

Docker est un truc qui permet d'exécuter n'importe quel machin sur n'importe quelle machine, mais il y a -quand même- des restrictions...

Les développeurs de Docker mettent le paquet sur l'architecture 64 bits "AMD64/x86_64". Donc si vous avez une archi 32 bits "i386" ou 64 bits "i686", vous pouvez faire tourner ça dans une machine virtuelle AMD64.

Pour connaître votre archi sous Linux

uname -m

Avec Vagrant : ça fonctionne

(Remarque : à partir de la version 1.6, vagrant fait ça tout seul avec le provider "docker")

Si vous n'avez pas une architecture AMD64, bah on va installer une machine virtuelle prête pour Docker.

Allez sur http://vagrantbox.es ; chercher "docker" et choisir la box que vous voulez

dans un répertoire de travail, genre ~/vagrant

vagrant init docker https://oss-binaries.phusionpassenger.com/vagrant/boxes/latest/ubuntu-14.04-amd64-vbox.box vagrant up vagrant ssh

Pour les détails sur comment ça marche 'vagrant', il y a l'internet ;)

Avec VirtualBox - j'ai pas essayé

Une image ISO d'Ubuntu 14.04, architecture AMD64.

wget http://cdimage.ubuntu.com/releases/14.04/release/ubuntu-14.04-desktop-amd64+mac.iso

Installez tout comm'y faut avec VirtualBox et entrez dedans.

Dans un ordi AMD64 / une machine virtuelle AMD64 (ici, avec Ubuntu 14.04)

Installation de Docker

Dans un 'vagrant ssh' (Ubuntu ; AMD64) / VirtualBox / un ordi AMD64

sudo apt-get update sudo apt-get install docker.io sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io

Qui peut utiliser Docker ? (Ubuntu 14.04)

Au départ, seul root a le droit d'utiliser docker comme il veut

$ docker pull phusion/baseimage ... Post http:///var/run/docker.sock/images/create ... dial unix /var/run/docker.sock: permission denied

On peut rajouter des gens dans le groupe docker, et du coup ils ont le droit aussi

sudo groupadd docker sudo gpasswd -a ${USER} docker

Et sortir (Ctrl+d) / rentrer ('vagrant ssh') (ou fermer la session / rebooter sur une vraie machine)

Une première image : ubuntu ou phusion/baseimage

Pour avoir une image de base qui fait tout bien comme il faut, on peut utiliser 'ubuntu', ou 'phusion/baesimage' (voir https://registry.hub.docker.com/u/phusion/baseimage/)

sudo docker pull ubuntu

ou

sudo docker pull phusion/baseimage

dans '~/VirtualBox VMs' ça prend 3.2G

Sur internet : quel hébergeur ?

Hébergeur : digital ocean

Pro tips

https://gist.github.com/jpetazzo/6127116

Docker Kill All

docker kill $(docker ps -a -q)

Clean ps

docker ps -a | awk '{print $1}' | xargs docker rm

Restart last container

docker start -i $(docker ps -lq)

Copy a file into a container

monter un volume...

Eviter les forkbomb

modifier /etc/init/docker.conf service docker restart