Procedimientos operativos estándar del sistema operativo anfitrión de Docker Discourse

Hay muchas publicaciones sobre cómo hacerlo que son excelentes, pero hay una que no puedo encontrar o que no existe y que incluiría:

  • Para aquellos que hacen autoalojamiento, cómo configurar el sistema operativo anfitrión, como Ubuntu, solo para alojar el contenedor Docker.
  • Una vez que el sitio está en funcionamiento, ¿cuáles son los procedimientos operativos estándar que se deben seguir con el sistema operativo anfitrión? Por ejemplo, verificar posibles intrusiones, cómo pasar del sistema operativo anfitrión al contenedor, cómo almacenar información básica en preparación para un problema, etc.

Sé que el manual será diferente para cada sistema operativo y sitio, pero también hay muchas cosas que serán comunes.

Dado que el sistema operativo solo ejecutará un contenedor Docker, habrá archivos y servicios innecesarios, pero ¿qué se considera innecesario? ¿Se necesita una interfaz gráfica y toda la maquinaria y los paquetes necesarios?

Una vez que el sitio está en funcionamiento, si ocurre algo y el sitio se cae, es necesario tener detalles del sitio, como su configuración, los pasos para reconstruirlo desde cero, la versión del software en ejecución, etc. ¿Qué detalles de este tipo son importantes? Tengo una buena idea, pero sería agradable ver lo que otros piensan y saben por experiencia.


Como ejemplo, al crear un procedimiento operativo estándar (SOP) para nuestro sitio, aquí están los diferentes resultados de pstree, uno desde el sistema operativo anfitrión y otro desde dentro del contenedor Docker. ¿Realmente necesita el anfitrión todos esos procesos? En los próximos días seguro que conoceré la respuesta, pero quizás otros ya la saben y pueden compartirla con nosotros.

    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]

EDIT

Para una configuración mínima de Ubuntu, consulta: Ubuntu Minimal
Nota: No lo he probado aún, solo lo comparto.
Lo antiguo que funciona suele seguir siendo válido. Consulta: Discourse en un contenedor Docker de Sam. :grinning:
Ofrece mucha información sobre la historia del uso de Discourse en Docker y cómo funciona.

2 Me gusta