397 liens privés
systemd's haters gonna hate..
C'est l'un des dernier gros soucis dans docker, la difficulté de gérer efficacement les volumes.
hum, il y a aussi le soucis de la sécurité. et notamment celle du daemon docker.
https://fosterelli.co/privilege-escalation-via-docker.html
PoC: https://github.com/chrisfosterelli/dockerrootplease
Ne pas utiliser le groupe 'docker' et utiliser sudo à la place, ben ça revient au même au final. Faudra toujours faire hyper gaffe à ce qu'on spawn comme docker, en particulier si on y monte des volumes.
"""
from libreoffice to mdp to chrome to glxgears to chrome w opengl/webgl to steam in a container
"""
une vraie nerd cette Jessie, elle dockerise TOUT :)
Lire aussi son article https://blog.jessfraz.com/posts/docker-containers-on-the-desktop.html (https://jeekajoo.eu/links/?upMf4Q)
Pour info elle est developpeuse sur https://github.com/docker/docker
Tester une infra saltstack à l'aide de docker machine.
Bonnes pratiques à suivre dans l'élaboration d'un Dockerfile.
Voir aussi sa prez: http://tech.paulcz.net/cdatx-advanced-docker/#/
utiliser ansible pour construire des images docker
howto pour monter un registry docker avec stockage local et séparation backend et frontend (dans 2 dockers séparés).
il utilise aussi supervisor pour maintenir les dockers up ('docker-compose up').
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo service docker restart
newgrp docker
Un petit client JS pour docker registry.
C'est pratique, il n'y a rien à installer et on peut rapidement voir les images qu'on a dans le registry.
Seul ombre au tableau: c'est encore un peu limité. On ne peut pas supprimer des images: juste supprimer des repos.
Penser à autoriser CORS sur le registry docker:
CORS_ORIGINS=[\'*\']
un bon tuto pour mettre en place un registry docker privé, avec basic auth + ssl + proxypass nginx.
c'est pour installer le registry en dur, sans passer par le docker 'registry'
docker run --name wp-mysql -d -e MYSQL_ROOT_PASSWORD=toor mysql
docker run --name wp-web -d -e VIRTUAL_HOST=wordpress.10.5.0.127.xip.io --link wp-mysql:mysql wordpress
docker run --name nginx-proxy -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy
- remplacer 10.5.0.127 par l'ip de votre HOST
- accèder au wordpress via http://wordpress.10.5.0.127.xip.io
- tout cela est possible grâce à https://github.com/jwilder/nginx-proxy qui lui même s'appuie sur docker-gen https://github.com/jwilder/docker-gen
scripts pour se faire une image docker debian from scratch, grâce à debootstrap
https://github.com/jmtd/debian-docker/
j'ai fait une debian wheezy là: jeekajoo/debian:wheezy (sur le registry docker hub)
PID 1 = docker, no systemd ;-P
Cet OS consiste en:
kernel linux + docker + quelques logiciels system installés sous forme de dockers (syslog, ntp, dhcp, console, udev ...)
TOUT est docker sur ce système qui fait environ 20MB.
Docker est plutôt cool pour notamment isoler des applis desktop propriétaires (dont on a pas confiance).
Comme skype dont je vous avais parlé là: https://jeekajoo.eu/links/?hUMexQ
Tous les dockerfiles de Jessie (l'auteur du blog, pas la version de debian!* ) sont là: https://github.com/jfrazelle/dockerfiles
- désolé
Delete all containers
alias adocker_reset_containers='docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)'
Delete all images
alias adocker_reset_images='docker rmi $(docker images -q)'
Delete all containers and images (reset)
alias adocker_reset_all='docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) && docker rmi $(docker images -q)'
Get all ip addresses (for all containers)
adocker_ips() {
docker ps -a|grep -v NAMES|rev|sed -r 's/\s+/ /g'|cut -d' ' -f2|rev|xargs -I % sh -c 'echo -n "% -> " && docker inspect --format "{{ .NetworkSettings.IPAddress }}" %'
}
Get all ip addresses (for running containers only)
adocker_ips_only_running() {
docker ps -a|grep -v NAMES|rev|sed -r 's/\s+/ /g'|cut -d' ' -f2|rev|xargs -I % sh -c 'echo -n "% -> " && docker inspect --format "{{ .NetworkSettings.IPAddress }}" %'
}
Get a shell inside a running container
adocker_shell_plz() {
docker exec -it $1 bash
}
un peu de littérature sur ce qu'est docker.
docker pull tianon/skype
docker run --rm -v /tmp/.X11-unix:/tmp/.X11-unix:ro -e DISPLAY="unix$DISPLAY" tianon/skype
(--rm: Automatically remove the container when it exits)
après la confiance est déplacée au niveau des images qu'on utilise.
par exemple, on peut imaginer un docker dont le DockerFile consiste à aller chercher une version modifiée et malicieuse du logiciel qu'on souhaite utiliser..
le but? détourner des données comme des mots de passe.
c'est pourquoi avant toute chose, bien penser à lire le DockerFile qui servira à la création du container
ici https://registry.hub.docker.com/u/tianon/skype/dockerfile/
c'est très lisible, pas besoin d'être adminsys. faites appel à votre bon sens.
consul && consul-template && docker
Pour faire du templating de conf dans un docker.
En gros ça peut faire un sed sur un fichier de conf et remplacer des variables par des variables d'environnement à la volée, avant le lancement du programme cible. Tout cela dans CMD
.
Ca dépanne mais c'est gruiky :). Pensez à installer curl dans le docker, ou à partir d'un docker qui le possède. ou à mettre envplate directement dans votre image d'origine, tant qu'à faire.
Préférez un truc comme 'consul template' peut-être.. https://tech.bellycard.com/blog/load-balancing-docker-containers-with-nginx-and-consul-template/