Il existe de nombreux tutoriels qui sont excellents, mais il en manque un que je ne parviens pas à trouver, ou qui n’existe pas encore, couvrant les points suivants :
- Pour ceux qui hébergent eux-mêmes, comment configurer le système d’exploitation hôte, comme Ubuntu, uniquement pour l’hébergement du conteneur Docker.
- Une fois le site en ligne, quelles sont les procédures opérationnelles standard à suivre au niveau du système d’exploitation hôte, par exemple vérifier les intrusions, comment passer du système hôte au conteneur, comment stocker des informations de base en prévision d’un problème, etc.
Je réalise bien sûr que le manuel variera selon chaque système d’exploitation et chaque site, mais il existe de nombreux éléments communs.
Puisque le système d’exploitation ne fera tourner qu’un conteneur Docker, il y aura des fichiers et services superflus, mais lesquels sont réellement inutiles ? A-t-on besoin d’une interface graphique et de tous les mécanismes et paquets associés ?
Une fois le site en ligne, si un incident survient et que le site tombe en panne, il est nécessaire de disposer de détails sur le site, tels que sa configuration, les étapes pour le reconstruire à partir de zéro, la version des logiciels en cours d’exécution, etc. Quels sont les détails de ce type qui comptent ? J’ai une bonne idée, mais il serait agréable de voir ce que les autres pensent et savent par expérience.
À titre d’exemple, pour créer une procédure opérationnelle standard (SOP) pour notre site, voici différents résultats de pstree, un depuis le système d’exploitation hôte et un depuis l’intérieur du conteneur Docker. Le système hôte a-t-il vraiment besoin de tous ces processus ? Dans les prochains jours, je serai probablement en mesure de répondre à cette question, mais peut-être que d’autres le savent déjà et peuvent nous en faire part.
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager─┬─dhclient
│ └─2*[{NetworkManager}]
├─accounts-daemon───2*[{accounts-daemon}]
├─2*[agetty]
├─atd
├─containerd─┬─containerd-shim─┬─boot───runsvdir─┬─runsv───rsyslogd───2*[{rsyslogd}]
│ │ │ ├─runsv───cron
│ │ │ ├─runsv───unicorn_launche─┬─ruby─┬─ruby───22*[{ruby}]
│ │ │ │ │ ├─6*[ruby───8*[{ruby}]]
│ │ │ │ │ ├─2*[ruby───9*[{ruby}]]
│ │ │ │ │ └─5*[{ruby}]
│ │ │ │ └─sleep
│ │ │ ├─runsv─┬─redis-server───3*[{redis-server}]
│ │ │ │ └─svlogd
│ │ │ ├─runsv─┬─postmaster───9*[postmaster]
│ │ │ │ └─svlogd
│ │ │ └─runsv───nginx───5*[nginx]
│ │ └─10*[{containerd-shim}]
│ └─18*[{containerd}]
├─cron
├─dbus-daemon
├─dockerd─┬─docker-proxy───8*[{docker-proxy}]
│ ├─docker-proxy───7*[{docker-proxy}]
│ └─16*[{dockerd}]
├─irqbalance───{irqbalance}
├─lvmetad
├─lxcfs───4*[{lxcfs}]
├─networkd-dispat───{networkd-dispat}
├─polkitd───2*[{polkitd}]
├─rsyslogd───3*[{rsyslogd}]
├─sshd───sshd───sshd───bash───pstree
├─sudo───docker───11*[{docker}]
├─systemd───(sd-pam)
├─systemd-journal
├─systemd-logind
├─systemd-resolve
├─systemd-timesyn───{systemd-timesyn}
├─systemd-udevd
└─wpa_supplicant
boot───runsvdir─┬─runsv───rsyslogd───2*[{rsyslogd}]
├─runsv───cron
├─runsv───unicorn_launche─┬─ruby─┬─ruby───22*[{ruby}]
│ │ ├─6*[ruby───8*[{ruby}]]
│ │ ├─2*[ruby───9*[{ruby}]]
│ │ └─5*[{ruby}]
│ └─sleep
├─runsv─┬─redis-server───3*[{redis-server}]
│ └─svlogd
├─runsv─┬─postmaster───9*[postmaster]
│ └─svlogd
└─runsv───nginx───5*[nginx]
MODIFICATION
Pour une configuration minimale d’Ubuntu, voir : Ubuntu minimal
Note : Je n’ai pas encore essayé cela pour le moment, mais je partage l’information.
Ce qui est ancien et fonctionne reste généralement valide. Voir : Discourse dans un conteneur Docker par Sam. ![]()
Cela donne beaucoup d’enseignements sur l’historique de l’utilisation de Discourse dans Docker et son fonctionnement.