Je lance un conteneur qui exécute un script bash qui fait un docker construit en interne à l'aide du docker 1.3.2 sur Centos 7.0.1406. Les fichiers/commandes sont à https://gist.github.com/wrabbit-revisited/1d70d0f1805be1848c08./var/run/docker.sock inaccessible dans un conteneur fonctionnant sur centos 7
La construction docker a besoin d'accéder à la prise de docker donc j'utiliser une astuce commune, comme par http://nathanleclaire.com/blog/2014/07/12/10-docker-tips-and-tricks-that-will-make-you-sing-a-whale-song-of-joy/:
-v /var/run/docker.sock:/var/run/docker.sock
Avant la construction i exécuter une vérification dans le script:
if [ -e "/var/run/docker.sock" ];
then
echo "docker.sock found"
else
echo "docker.sock not found"
fi
et le "echo" montre que docker.sock est introuvable. Il est trouvé si la vérification est effectuée à l'extérieur du conteneur en utilisant sudo.
J'ai essayé d'ajouter "--permissive = true" à la ligne de commande "docker run", mais pas de changement apparent.
Il y a une référence à un problème similaire ici: https://github.com/dpw/selinux-dockersock. Il cible Fedora/RHEL, mais ne résout pas ce problème non plus. Si j'utilise "setenforce Permissive" et sestatus pour s'assurer que selinux est en mode permissif, le problème reste non résolu.
J'ai également essayé d'ajouter "--security-opt = label: type: docker_t" à la ligne de commande docker, comme https://github.com/jwilder/nginx-proxy/issues/40. Pas d'effet apparent.
La stratégie selinux pour Docker est décrite ici: http://www.unix.com/man-page/centos/8/docker_selinux/. Beaucoup d'informations, mais je ne suis pas sûr si selinux contribue au problème. Si je modifie/etc/selinux/config pour désactiver selinux puis redémarrer et exécuter sestatus, il dit que selinux est désactivé, mais le problème persiste.
En regardant à propos de, il peut être lié à ceci: https://github.com/docker/compose/issues/983. Utiliser cette astuce pour lancer docker à l'intérieur d'un conteneur est assez courant, mais il existe peut-être une meilleure façon de le faire ou une bonne solution de contournement. Je pensais à dind, mais c'est un travail et c'est une approche très répandue et simple (en surface) pour exécuter une construction docker à l'intérieur d'un conteneur. Il y a probablement une solution simple.
Toute aide serait appréciée! merci
Je viens de l'essayer sur un bureau ubuntu 14.04 avec docker 1.2.0. Le fichier build.sh qui s'exécute dans le conteneur a pu trouver /var/run/docker.sock donc ce problème semble être propre à Centos 7. BTW, il est nécessaire de rendre exécutable build.sh avant de construire l'image du docker. –
Nous avons réussi à faire fonctionner DockerUI sur RHEL/CentOS en utilisant le drapeau '--privileged'. C'est un peu un marteau et je serais heureux d'apprendre une meilleure approche. –
Yep .. actuellement Docker est un peu une cible en mouvement, en particulier pour la sécurité. Pas un bloqueur pour moi actuellement - je suis passé à Ubuntu 14.04 pour éviter le problème. –