apt-get update apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - apt-key fingerprint 0EBFCD88 add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" apt-get update apt-get install docker-ce
tester que docker est installé et marche en lancant une image de demo. ça affiche un petit message :
docker run hello-world
Voir les images installées
docker images
Chercher des images
docker search ubuntu
Chopper une image
docker pull ubuntu
ou
docker load image.tgz
lancer / créer un container / vm : (attention ca en crée un nouveau à chaque fois)
docker run -ti ubuntu /bin/bash
ajouter -d pour que ça tourne en fond (comme si on avait fait un start)
ajouter -w pour dire dans quel dossier on doit se placer dans la vm
ajouter -v pour mapper un dossier pathReel:pathDansLeContainer
ajouter -p pour mapper un port portReel:portDansLeContainer
ajouter --link pour connecter 2 containers, NomDuContainer:nomSouhaiteDansLeContainer (crée un "nom de domaine" pour un container, ce qui le rend accessible)
ajouter --rm pour auto supprimer le container lorsque l'on l'eteint
ajouter --name pour nommer un container
Voir les containers
docker ps -as
lancer un container qui existe
docker start 8464c7bb5c96
execute une commande sur un container
docker exec 8464c7bb5c96 ls docker exec -ti 8464c7bb5c96 /bin/bash
autres actions sur le container :
docker stop 8464c7bb5c96 docker restart 8464c7bb5c96
supprime des container :
docker rm 8464c7bb5c96 docker container prune
supprime des images
docker rmi ubuntu
emacs server.js console.log('test');
lancer
docker run -t --rm -v $(pwd):/usr/src/app -w /usr/src/app xataz/node:6 node server.js
emacs server.js var http = require('http'); var server = http.createServer(function (request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.end("Hello Monde avec la version " + process.version + "\n"); }); server.listen(8000); console.log("Server running at 0.0.0.0:8000");
lancer
docker run -d -v $(pwd):/usr/src/app -w /usr/src/app -p 8001:8000 xataz/node:6 node server.js docker logs 7aef9ddd44698 curl http://localhost:8001
premiere vm : nodejs
docker run -d -v $(pwd):/usr/src/app -w /usr/src/app -p 8001:8000 --name nodev1 xataz/node:6 node app.js
deuxieme vm : nginx
docker run -d -v /docker/config/nginx:/sites-enabled -p 80:8080 --name reverse --link nodev1:nodev1.local xataz/nginx:mainline
le conteneur nginx aura accès au premier conteneur grace a --link. La premiere vm est accessible via le nom de domaine nodev1.local (uniquement depuis la 2e vm)