Inist-CNRS / inist-tools

Outil permettant de faciliter le fonctionnement d’un poste Debian ou Ubuntu dans l'environnement INIST (proxy)
4 stars 1 forks source link

docker-opts.conf écrasé lors de la réinstallation #13

Open parmentf opened 7 years ago

parmentf commented 7 years ago

Lundi, j'ai réinstallé inist-tools par-dessus ma vieille version (1.5.14):

$ sudo dpkg -i Téléchargements/inist-tools_latest.deb

Et depuis: plus aucune image quand je fais un docker images, ni aucun container via docker ps.

En essayant de lancer hello-world, j'ai eu une erreur bizarre:

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
78445dd45222: Extracting [==================================================>]    971 B/971 B
docker: failed to register layer: open /home/parmentf/data/docker/aufs/layers/1e690986abd18548a78bb625db90dd968c78d35ede803e354562eee41edc5d12: no such file or directory.
See 'docker run --help'.

À la suite d'un sudo service docker restart, j'ai eu une erreur:

Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

J'ai donc fait le status:

$ sudo systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/docker.service.d
           └─inist-tools.conf
   Active: failed (Result: exit-code) since jeu. 2017-03-02 17:23:54 CET; 16s ago
     Docs: https://docs.docker.com
  Process: 18560 ExecStart=/usr/bin/docker daemon $DOCKER_OPTS -H fd:// (code=exited, status=1/FAILURE)
 Main PID: 18560 (code=exited, status=1/FAILURE)

mars 02 17:23:53 p-parmentier systemd[1]: Starting Docker Application Container Engine...
mars 02 17:23:53 p-parmentier docker[18560]: Command "daemon" is deprecated, and will be removed in Docker 1.16. Please run `dockerd` directly.
mars 02 17:23:53 p-parmentier docker[18560]: time="2017-03-02T17:23:53.867434389+01:00" level=info msg="libcontainerd: new containerd process, pid: 18577"
mars 02 17:23:54 p-parmentier docker[18560]: time="2017-03-02T17:23:54.883490902+01:00" level=error msg="AUFS is not supported over <unknown>"
mars 02 17:23:54 p-parmentier docker[18560]: time="2017-03-02T17:23:54.883564313+01:00" level=error msg="[graphdriver] prior storage driver aufs failed: backing file system is unsuppor
mars 02 17:23:54 p-parmentier docker[18560]: Error starting daemon: error initializing graphdriver: backing file system is unsupported for this graph driver
mars 02 17:23:54 p-parmentier systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
mars 02 17:23:54 p-parmentier systemd[1]: Failed to start Docker Application Container Engine.
mars 02 17:23:54 p-parmentier systemd[1]: docker.service: Unit entered failed state.
mars 02 17:23:54 p-parmentier systemd[1]: docker.service: Failed with result 'exit-code'.

Après un inist docker off suivi d'un inist docker on, docker semblait marcher normalement:

$ docker run --name portainer -d -p 9000:9000 portainer/portainer
Unable to find image 'portainer/portainer:latest' locally
latest: Pulling from portainer/portainer
a3ed95caeb02: Pull complete 
802d894958a2: Pull complete 
9714a572ca25: Pull complete 
Digest: sha256:04bc4e9e679ef9ac6ce446fb4db3ff4cda37445fffb68754a050590f69280d6a
Status: Downloaded newer image for portainer/portainer:latest
a94b6e2d44cfe564aada6160a05cdd0257532097d9128340277d61e5dbad2b6b
$ docker ps
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                    NAMES
a94b6e2d44cf        portainer/portainer   "/portainer"        5 seconds ago       Up 4 seconds        0.0.0.0:9000->9000/tcp   portainer

Mais lors d'un sudo systemctl status docker.service, je m'aperçois que l'option -g /home/parmentf/data/docker n'est plus utilisée.

Et pour cause, le fichier d'options docker a été réinitialisé:

$ ll /opt/inist-tools/conf/docker-opts.conf 
-rwxr-xr-x 1 parmentf parmentf 0 mars   1 12:46 /opt/inist-tools/conf/docker-opts.conf*

Est-ce dû au fait que j'ai réinstallé par dessus ma configuration via un dpkg -i, et est-ce que la commande update fait maintenant attention à ne pas écraser cette configuration (auquel cas cette issue n'a pas lieu d'être) ?

parmentf commented 7 years ago

Bon, c'est peut-être autre chose: j'ai eu des soucis à redémarrer docker après modification de docker-opts.conf.

En tout cas, la valeur par défaut de l'option config-file de dockerd, c'est maintenant /etc/docker/daemon.json, et plus /etc/default/docker (?). (voir cette issue)

Mais je ne retrouve pas l'option dans daemon.json qui permettrait de changer l'emplacement des fichiers. Ce n'est peut-être pas la bonne piste. Ah oui, j'ai aussi eu des messages d'erreurs très bizarres (qui pourtant montrent que la config est prise en compte, j'en perds mon latin):

mars 02 17:52:13 p-parmentier systemd[1]: docker.service: Ignoring invalid environment assignment 'export HTTP_PROXY=http://proxyout.inist.fr:8080': /etc/default/docker

En tout cas, je me retrouve sans docker pour l'instant.

parmentf commented 7 years ago

J'avais négligé la ligne du journal: AUFS is not supported over <unknown>. C'est très étonnant, parce que ça marchait il y a deux semaines, sur ce disque crypté.

ghost commented 7 years ago

Salut François,

Dans la mesure où le fichiers d'options personnalisées Docker n'est pas dans l'installation d'inist-tools, il n'est pas écrasé lors des mises-à-jour. Inist-tools le prend en compte s'il le trouve dans /opt/inist-tools/conf/ et ignore son absence.

J'ai envie de dire, jusqu'à plus amples explorations, que c'est du côté de Docker que ça se passe... 😉

parmentf commented 7 years ago

Oui, j'en suis venu à ça: docker et le disque crypté sur lequel j'essaye de lui faire lire/écrire ses fichiers.

parmentf commented 7 years ago

En utilisant une partition non cryptée (celle par défaut: /var/lib), plus de problème.