Lors de l'exécution de MySQLD dans ce dockerfile (sur ma boîte Linux, Linux 12.04)
DockerFile: P>
$ ls -ld /lib drwxr-xr-x 12 root root 4096 Dec 16 13:42 /lib $ ls -ld /lib/x86_64-linux-gnu drwxr-xr-x 3 root root 4096 Mar 17 13:39 /lib/x86_64-linux-gnu
4 Réponses :
essayer
de
sudo apt-obtenir la mise à jour
de
sudo apt-get install -y mysql-serveur p>
Comme indiqué sur github.com/dotcloud/docker/issues/4704 , il a déjà essayé Cela et ça n'a pas fonctionné ... mentionner des sources est toujours une bonne idée.
Comme mentionné, j'ai déjà essayé cela et que le dockerfile exécute également la mise à jour APT-GET. Sortie de $ chat /etc/apt/sources.list est deb archive.ubuntu.com/ubuntu précise Main, si c'est ce que vous entendez par des sources?
J'ai donc résolu le problème en utilisant le backend de stockage DeviceMapper, comme suggéré par @jpetazzo. P>
Étapes I effectuées: P>
docker code> damon li>
- a commencé le
docker code> dockon avec commande docker -d -s = "deviceMapper" code> li>
- a exécuté le
docker exécuter code> sur la commande dockerfile à nouveau. Et cela a fonctionné sans aucun problème. LI>
ol>
Le backend BTRFS est bon pour surmonter ce problème aussi. Assurez-vous simplement / var / lib / docker est sur un volume BTRFS, et il est automatiquement utilisé.
Supprimer le conteneur résolvez ce problème pour moi.
update strong>: cette solution n'a pas été aussi longue. p> donc j'ai continué à rechercher et à trouver Si vous avez installé MySQL sur votre hôte, L'APPARMOR peut limiter l'accès de cette bibliothèque partagée pour MySQL installé sur votre conteneur Docker. Les suivants corrigent le problème: p>
Si vous avez installé MySQL-Server sur votre machine hôte, il installe un profil AparMor pour MySQLD. Pour moi, le problème est parti après avoir désactivé le profil MySQLD APPARMOR sur l'hôte avec les commandes suivantes: P>
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld p> blockQuote>Bien sûr, cela signifie également qu'Apparmor sera désactivé pour MySQLD sur votre hôte. Je n'utilise pas mysqld donc je vais bien avec ça. P>
Quelles sont les autorisations de
libz.so.1 code>? Veuillez inclure la sortie de
ls -l /path/to/libz.so.1 code> dans votre question.
Merci, a mis à jour la question avec les autorisations.
Les autorisations de
libz.so.1 code> vont bien. Vous pouvez essayer
strace -o /tmp/mysql.strace commande-to-start-mysql code>, et ce
/tmp/mysql.strace code> peut vous donner les indices pourquoi MySQL ne peut pas ouvrir cette bibliothèque.
Exécutez-vous MySQL avec l'option privilégiée ??
Même question ici Github.com/dotcloud/docker/issues/4704
Merci pour votre commentaire. Cette trace indique également que la libz.so.1 donne une permission refusée. J'ai mis à jour la question avec la sortie.
@Rahul r Dhobi: Nope, je ne suis pas en mode privilégié et oui, j'ai ajouté que comme un problème pour le dotcloud, mais ils l'ont refermé même s'il n'est pas encore réparé (pour moi au moins).
@jakobht Quelle est la sortie de
ls -ld / lib code> et
ls -ld / lib / x86_4-linux-gnu code>, votre MySQL ne peut pas accéder à ces deux répertoires.
@leeduhem, j'ai essayé vos commandes, mais les deux bibliothèques ont lu et exécutent des autorisations pour
autres code> (mises à jour la question avec la sortie). Le désordre de conteneur de docker peut-il contenir des autorisations?
Cela pourrait être lié à Docker Numéro # 783 . Si vous pouvez essayer de basculer sur les registres de stockage DeviceMapper ou BTRFS pour réessayer, ce serait génial. En outre, si vous pouvez fournir un dockerfile complet (que tout le monde peut simplement construire + courir pour reproduire le problème), ce serait très utile! Merci!
@jpetazzo, merci beaucoup! Votre idée en passant au pilote DeviceMapper (n'a pas essayé BTRFS) la résolvait. Pourriez-vous s'il vous plaît ajouter une réponse.
GitHub Problèmes: Github.com/orchardup/docker-mysql/issues/5 Github.com/dotcloud/docker/issues/4704 github.com/dotcloud/docker/issues/783 GITUB.COM/TUTUMCLOUD/TUTUM-DOCKER-MYSQL/issues/5
Je dois ajouter cela, puisque je suis confronté au même problème. Je l'ai résolu un peu d'une manière différente. Donc, ce que j'ai fait est:
exécuter apt-get update && apt-get install -y lib32z1 code>. Je dois mentionner que j'utilise des cultures / Poky: Ubuntu-16.04.