Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ancien docker plus disponible : Comment le réinstaller ?

Featured Replies

  • Community Expert

Les dockers et leurs installation en ligne :

Depuis le début avec unraid, ça m'a semblé très dangereux avec leurs trucs "en ligne" qui, d'un seul coups ne sont plus disponibles, on se retrouve à ne plus pouvoir ce que l'on faisait précédement.

Puisqu'il a fallu découvrir unraid et ses subtilités, les dockers qui sont assez simplifier pour unraid, mon temp n'a pas été employer à se pencher sur la possibiliter d'installer un docker sans être "en ligne".

Problème :

Je réinstalle ma machine avec un docker simple : Apache-php avec php v5.5.9 ( Repository : chvb/docker-apache-php) mais il n'existe plus !

Je découvre un nouveau mais avec php v8, sauf que mes scripts et différents outils qu'il m'est impossible de refabriquer ne fonctionnent plus avec la version 8...

Donc comment installer ce docker qui fonctionnait bien ?

Et comment récuperer tout ce qu'il faut pour faire une installation locale ? Comem avec un CD ou DVD à l'époque ?

Merci par avance.

Salut.

Il y a 2 aspects à ta question et je vais tâcher de répondre aux 2.

Pour php 5.5.9 je ne t'apprends rien en te disant que ce n'est plus maintenu depuis 2016 je crois alors pour trouver des images docker opérationnelles sur cette version il faut aller sur de vieilles distributions.

Je pense que tu sais que il serait mieux d'adapter ton code php5 en php8 mais soit.

Dans ta situation il faudrait savoir tous les modules php dont tu aurais besoin pour te refaire une image sur mesure.

Edited by waazaa

Je te donne une marche à suivre mais faudra que tu regardes cet aspect extensions php si il t'en manque.

Dans un dossier de ton unraid de travail tu vas créer un fichier nommé Dockerfile avec ce contenu:

FROM ubuntu:14.04

ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris
ENV SERVERNAME=localhost.local
ENV SERVERADMIN=admin@localhost

# Configuration du timezone
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# Installation Apache et PHP 5.5.9
RUN apt-get update && apt-get install -y \
    apache2 \
    php5 \
    php5-cli \
    php5-mysql \
    php5-gd \
    php5-curl \
    php5-ldap \
    php5-mcrypt \
    php5-intl \
    libapache2-mod-php5 \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

# Activation des modules Apache
RUN a2enmod php5 rewrite remoteip

WORKDIR /var/www/html
EXPOSE 80

CMD ["apache2ctl", "-D", "FOREGROUND"]

Ensuite en console UnRAID tu te place dans ce dossier et vas lancer cette commande (attention à bien mettre le point de fin):

docker build -t apache-php5.5.9 .

Une fois le travail fait tu te retrouves avec une image docker contenant apache2 et php5.5.9 avec quelques modules (mais pas tous peut-être) dans le registre docker interne à ton UnRAID.

Tu peux l'utiliser dans ton template à la place de chvb/docker-apache-php tu mets donc: apache-php5.5.9

Edited by waazaa

Ca m'emmène à répondre au second aspect de ta question qui est de pouvoir stocker soi même les images importantes que l'on utilise.

Alors oui des dépôts se ferment pour différentes raisons: sécurité, obsolescence, inactivité, dmca...

Il est donc utile de stocker soi même les images que l'on trouve indispensable, un peu comme si tu conservais les exécutables d'installation d'applications ou de pilotes.

Pour faire cela avec des images docker tu as à mon sens 2 façons de faire:

  • soit tu exportes l'image en archive et tu stockes l'archive

    docker save registre/image:tag | gzip > mon-image.tar.gz

  • soit tu fais tourner localement ton propre registre

La seconde option est la plus efficace et pour cela il te faut faire tourner un container de registre pour docker comme par exemple registry.

Exemple de template à mettre en tant que my-registre-local.xml dans /boot/config/plugins/dockerMan/templates-user :

<?xml version="1.0"?>
<Container version="2">
  <Name>registre-local</Name>
  <Repository>registry:3</Repository>
  <Registry>registry:3</Registry>
  <Network>bridge</Network>
  <MyIP/>
  <Shell>sh</Shell>
  <Privileged>false</Privileged>
  <Support/>
  <Project/>
  <Overview>Pour cr&#xE9;er un htpasswd contenant nouveau credentials:&#13;
docker run  --entrypoint htpasswd  httpd:2 -Bbn testuser testpassword&#13;
Et ajouter une ligne avec la réponse de cette commande dans: /mnt/user/registre-local/auth/htpasswd
&#13;
&#13;
Pour login&#13;
docker login registre.example.com&#13;
&#13;
</Overview>
  <Category/>
  <WebUI>https://registre.example.com</WebUI>
  <TemplateURL/>
  <Icon>https://www.webhi.com/images/world-wide-web.png</Icon>
  <ExtraParams/>
  <PostArgs/>
  <CPUset/>
  <DateInstalled>1761944556</DateInstalled>
  <DonateText/>
  <DonateLink/>
  <Requires/>
  <Config Name="/var/lib/registry" Target="/var/lib/registry" Default="" Mode="rw" Description="" Type="Path" Display="always" Required="false" Mask="false">/mnt/user/registre-local/</Config>
  <Config Name="/auth" Target="/auth" Default="" Mode="rw" Description="" Type="Path" Display="always" Required="false" Mask="false">/mnt/user/registre-local/auth/</Config>
  <Config Name="REGISTRY_AUTH:" Target="REGISTRY_AUTH" Default="" Mode="" Description="" Type="Variable" Display="always" Required="false" Mask="false">htpasswd</Config>
  <Config Name="REGISTRY_AUTH_HTPASSWD_REALM" Target="REGISTRY_AUTH_HTPASSWD_REALM" Default="" Mode="" Description="" Type="Variable" Display="always" Required="false" Mask="false">Registry Realm</Config>
  <Config Name="REGISTRY_AUTH_HTPASSWD_PATH" Target="REGISTRY_AUTH_HTPASSWD_PATH" Default="" Mode="" Description="" Type="Variable" Display="always" Required="false" Mask="false">/auth/htpasswd</Config>
  <Config Name="PORT" Target="5000" Default="5000" Mode="tcp" Description="" Type="Port" Display="always" Required="false" Mask="false">5000</Config>
  <TailscaleStateDir/>
</Container>

Il faut plusieurs choses pour cela:

  • créer un SHARE registre-local pour stocker tous les layers que tu enverras

  • que tu pointes un sous domaine dessus pour avoir du https et donc certificats SSL

Dans le template tu remarqueras que j'utilise la protection htpasswd pour accéder au registre. Du coup avant de pouvoir pull/push vers lui il te faut t'identifier.

Pour faire cela c'est assez simple il suffit de se loguer:

docker login registre.example.com

Ensuite une fois qu'il tourne tu peux retagger les images importantes et pousser vers ton registre privé:

docker tag une/image registre.example.com/image

docker push registre.example.com/image

Et quand tu as besoin de t'en servir tu prends:

registre.example.com/image

Personnellement j'ai créé une image docker qui fait cela pour moi en indiquant juste les images que je veux cloner il prend ce qui sort pour ces images et les stock sur mon registre privé.

Edit:

je viens de publier mon image pour cloner les dépôts vers son registre perso si jamais tu vas jusque là.

https://hub.docker.com/r/waazaafr/docker-image-cloner

Edited by waazaa

  • Author
  • Community Expert

Ah merci grandement pour tout ça ! C'est vraiment TRES intéressant tout ce que tu nous explique !

Je vais relire tout en détail et mettre à profit ces précieuses infos !

A suivre ;)

Hésites pas à me solliciter si tu veux de l'aide dans l'application de ce dont j'ai parlé ici.

  • Author
  • Community Expert

Encore merci pour ton aide.

Concernant m'a volonté de garder php 5.5.9 c'est à cause du "programme" qui est bien fait et dont je ne sais pas du tout le mettre à jour.

C'est un copain qui a modifié un programme en php et il n'a pas le temps de se remettre dessus pour le mettre à jour pour php 8 et pour ma part, je ne sais pas faire.

C'est un outil sur une page web toute simple pour uploader des fichiers.

Ca sert à ceux qui ne savent pas se servir des outils de upload de fichiers (photos, document word excel de base) pour que je les aide à publier ou envoyer des documents.

Donc il n'y pas vulnérabilité gigantesque.

Voilà pour la première partie.

J'ai donc testé ta procédure avec ceci. J'ai donc créé un dossier de test et crée le fichier Dokerfile :

# cd /mnt/user/Essai-Docker/

# vi /mnt/user/Essai-Docker/Dockerfile

Copié ton texte dans le fichier et lancé la porcédure :

# docker build -t apache-php5.5.9 .

[+] Building 124.8s (9/9) FINISHED

OK, visiblement suivant le log affiché, tout est téléchargé dans un fichier de 70Mo en gros,

# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

apache-php5.5.9 latest 7c84153844e7 40 minutes ago 271MB

J'archive l'image avec :

# docker save apache-php5.5.9 | gzip > apache-php5.5.9.tar.gz

J'ai regardé ta seconde partie, mais je ne comprends pas tout.

J'essaye de me documenter mais je trouve le système des dockers assez flou car entre les différentes plateformes ca m'a l'air encore différents.

Et unraid est encore spécifique.

Dans unraid "Docker Containers", on voit bien le docker téléchargé :

(orphan image) stopped Image ID: 7c84153844e7 apache-php5.5.9:latest

Par contre, comment l'installer du coups ? Tout du moins pour l'utiliser via l'outil docker unraid ?

Et dans le cas d'un docker sauvé sous forme "mon-image.tar.gz"

En passant, j'ai trouvé comment installer le fichier sauvé dans "docker containers" de unraid :

docker load < apache-php5.5.9.tar.gz

En gros, il y a donc plusieurs phases :

-Télécharger le docker : OK, c'est compris, j'ai réussi à le stocker chez moi.

-Installer le docker depuis le fichier stocké chez moi : reste à comprendre

Merci par avance.

Edited by PicPoc

En fait tu n'as pas à save l'image une fois qu'elle est faite.

A la fin de la commande docker build tu as obtenu:

REPOSITORY TAG IMAGE ID CREATED SIZE

apache-php5.5.9 latest 7c84153844e7 40 minutes ago 271MB

Tu peux t'arrêter là pour ton besoin initial.
Il te suffit ensuite d'aller dans le template du container que tu veux utiliser pour ton application php et mettre en "repository" : apache-php5.5.9:latest

L'autre partie de ma réponse concernait tes besoins de sauvegarder les images mais on voit ca aprés si tu veux.

  • Author
  • Community Expert

OK.

Effectivement j'ai créer un fichier XML de base pour installer le docker dans unraid via leur outil "Docker Containers" avec le webui.

Tout est ok. PAr contre j'ai plusieurs modules à utiliser :

a2enmod proxy proxy_http proxy_html headers xml2enc proxy_wstunnel

Je les ais donc ajouté à la ligne dans le fichier Dockerfile comme ceci :

# Activation des modules Apache

RUN a2enmod proxy proxy_http proxy_html headers xml2enc proxy_wstunnel php5 rewrite remoteip

Mais est-ce suffisant ?

le proxy ne fonctionne pas bien...

Essayes de voir en ajoutant des paquets supplémentaire donc en modifiant la partie installation des paquets;

# Installation Apache, PHP 5.5.9 et dépendances proxy

RUN apt-get update && apt-get install -y \

apache2 \

php5 \

php5-cli \

php5-mysql \

php5-gd \

php5-curl \

php5-ldap \

php5-mcrypt \

php5-intl \

libapache2-mod-php5 \

libapache2-mod-proxy-html \

libxml2-dev \

&& apt-get clean && rm -rf /var/lib/apt/lists/*

Puis tu buikd de nouveau, sur la page DOCKER de UnRAID si tu veux qu'il prenne la dernière version il te faut aller activer la vue avancée en haut à droite et a partir de ce moment pour chaque container de la page tu trouves un lien "Force update" à utiliser donc.

Mais me semble que tu vas devoir aussi modifier le virrtualhost

Ton application php est en plusieurs fichiers ?
tu as pas moyen de la montrer pour voir si l'upgrader pour php8 serait compliqué ou pas ?

Edited by waazaa

  • Author
  • Community Expert

Je te remercie.

Après plusieurs essais, le proxu et proxy reverse ne fonctionne toujours pas et je ne comprends pas trop pouquoi.

Tout fonctionne avec Apache-PHP d'origine mais pas avec la version que tu m'a fait génerer.

Dans le pire des cas je peux créer 3 docker (car 3 outils) pour éviter d'utiliser le proxy, mais ensuite, je vais devoir tout relier avec NGINX.

Il faut que j'étudie nginx et je pars de zéro... lol

Pour ta proposition pour voir mon outil, je demande à mon copain, qui l'a fait. Enfin qui l'a repris de je ne sais où puis modifié...

Je reviens vers toi dès que j'ai du neuf.

Merci encore.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.