public enum { java, logiciels libres,… }

public enum { java, logiciels libres,… }

Erreur 139 à l’exécution d’un container docker — 1 avril 2020

Erreur 139 à l’exécution d’un container docker

Voici un rapide article sur un problème rencontré récemment. Lors de l’exécution d’un container docker, j’ai eu une erreur SIGSEGV 139. Un crash avec aucune log.

Bref que du bonheur 🙂



Avant d’aller plus loin voici mon environnement:

Après quelques recherches, je me suis rendu compte qu’on pouvait reproduire ce comportement en exécutant cette commande:

docker run -it gcc:4.8.5

Une des raisons trouvées serait un problème de compatibilité avec le noyau 4.8.5 (oui ça remonte…).
Une solution est d’activer l’émulation vsyscall.


Voici la configuration à effectuer:
Dans le fichier /etc/default/grub, ajouter la ligne suivante:

GRUB_CMDLINE_LINUX_DEFAULT="quiet vsyscall=emulate"

Puis lancer les commandes suivantes:

$ sudo update-grub 
$ sudo reboot

Maintenant le container devrait pouvoir s’exécuter correctement.

Installer docker ce sur Debian 9 — 26 septembre 2018

Installer docker ce sur Debian 9

Bon, ça fait quelques temps que je n’ai rien posté…
Voici un rapide tuto pour installer docker-ce sur une debian9. Oui, je sais, docker est déjà présent sur les dépôts, mais si vous souhaitez avoir une version un peu plus récente, vous pouvez passer par l’installation de la version ce fournie par docker.

Pré-requis

Supprimer les éventuelles installations de docker et docker-compose


#apt-get remove docker docker-compose

Installation

Lancer les commandes suivantes:

# apt-get install apt-transport-https ca-certificates
# curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
# add-apt-repository \ 
"deb [arch=amd64] https://download.docker.com/linux/debian \ 
$(lsb_release -cs) \ stable"

Puis lancer


# apt update

# apt install docker-ce

Installation de docker-compose

Lancer les commandes suivantes:


# curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# chmod a+x /usr/local/bin/docker-compose

Configuration des droits

Pour lancer docker depuis un utiliser non root, il faut lancer les commandes suivantes:


# groupadd docker

# adduser monutilisateur docker

# usermod -aG docker monutilisateur

Après ceci, vaut mieux redémarrer le pc …

Configuration du démon

Voici quelques config à appliquer pour que le démon soit accessible par des outils tels que le plugin maven ou encore configurer l’accès à un proxy

Configuration du port

Exécuter la commande:


# systemctl edit docker.service

Entrer le code suivant:


[Service]

ExecStart=

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

Et l’enregistrer sous /etc/systemd/system/docker.service.d/docker.conf

Configuration du proxy

Avec la même commande


# systemctl edit docker.service

Entrer la configuration suivante:


[Service]

Environment="HTTP_PROXY=http://mon_proxy:mon_port/"

Environment="NO_PROXY=127.0.0.1"

Activation des configurations

Lancer les commandes suivantes:


# systemctl daemon-reload # systemctl restart docker

Validation

Maintenant, vous pouvez valider votre configuration avec la commande:


$ docker run hello-world