https://www.twitch.tv/mrkhaosk19
https://clips.twitch.tv/ArtsySmokyGoldfishPartyTime-vB9h2nIbmeodTtWS
https://www.twitch.tv/mrkhaosk19
https://clips.twitch.tv/ArtsySmokyGoldfishPartyTime-vB9h2nIbmeodTtWS
Primera parte: bind-mount
Successfully built f4fee070b7ef
Successfully tagged hmazur:1.0
REPOSITORY TAG IMAGE ID CREATED SIZE
hmazur 1.0 f4fee070b7ef 5 minutes ago 173MB
hellow 1.0 55c08152bc11 12 hours ago 173MB
docker@HelloWorld:/c/Users/Public/docker/bindpersist$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ab44326fb14f hmazur:1.0 "/bin/sh -c 'nginx -â¦" 8 seconds ago Created wsazur
8ecc88f7e9fb hellow:1.0 "/bin/sh -c 'nginx -â¦" 2 minutes ago Created ws02
8798d1456e67 hellow:1.0 "/bin/sh -c 'nginx -â¦" 5 minutes ago Created ws01
Segunda parte: volumes
docker@HelloWorld:~$ docker volume create persistencia01
persistencia01
docker@HelloWorld:~$ docker volume create persistencia02
persistencia02
docker@HelloWorld:~$ docker volume ls
DRIVER VOLUME NAME
local persistencia01
local persistencia02
docker@HelloWorld:~$ docker volume inspect persistencia01
[
{
"CreatedAt": "2023-02-09T11:03:20Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/mnt/sda1/var/lib/docker/volumes/persistencia01/_data",
"Name": "persistencia01",
"Options": {},
"Scope": "local"
}
]
docker create --name wsazur -v persistencia01:/app hmazur:1.0
283e9e5a76801f385e41df3aad8dc4eae4a0e24b27d1a7b6b47418110587b44d
docker create --name ws01 –v persistencia02:/app hellow:1> 38617c65c20dd2511467b058db7d129d6775d3c8c5351661edbe013691c7bc29
docker@HelloWorld:~$ docker inspect wsazur | grep -A 3 -B 3 volum
},
"Mounts": [
{
"Type": "volume",
"Name": "persistencia01",
"Source": "/mnt/sda1/var/lib/docker/volumes/persistencia01/_data",
"Destination": "/app",
"Driver": "local",
"Mode": "z",
docker@HelloWorld:~$ docker inspect ws01 | grep -A 3 -B 3 volum
},
"Mounts": [
{
"Type": "volume",
"Name": "persistencia02",
"Source": "/mnt/sda1/var/lib/docker/volumes/persistencia02/_data",
"Destination": "/app",
"Driver": "local",
"Mode": "z",
docker start wsazur && docker start ws01
docker@HelloWorld:~$ docker exec -it wsazur bash -c "ls -lart /app"
total 8
-rw-r--r-- 1 root root 0 Feb 9 11:13 holamundo.txt
drwxr-xr-x 2 root root 4096 Feb 9 11:13 .
drwxr-xr-x 1 root root 4096 Feb 9 11:14 ..
docker@HelloWorld:~$ docker exec -it ws01 bash -c "ls -lart /app"
total 8
-rw-r--r-- 1 root root 0 Feb 9 11:13 holamundo1.txt
drwxr-xr-x 2 root root 4096 Feb 9 11:13 .
drwxr-xr-x 1 root root 4096 Feb 9 11:14 ..
Los volúmenes son más fáciles de migrar y hacer copias de seguridad, de compartir entre contenedores y/o desde la nube. Se colocan en una zona de linux con mayor seguridad y protección que los "bind". También están fuera del ciclo de vida del contenedor.
Estamos en 2019 y aquí estoy montando un frankenservidor en una máquina de hace 30 años con 32Mb de RAM y procesador de 300mhz. Siguiendo los pasos del tutorial de puesta en marcha del host (http://kernelloader.sourceforge.net/linux.html)
Estoy en un entorno chroot a través del qemu-mipsel-static usando un ubuntu 17 en una pequeña “caja” Dual-core con 1Gb de RAM y preparando el disco IDE que voy a pasar a la máquina destino. Partiendo de un debootstrap que ocupa unos 500 mbs sobre una partición de 8 gb:
Previos:
Requisitos:
Proceso:
97) ANTES QUE NADA RECUERDO EL PROCESO INVERSO
|
97) Posiblemente de algún github descargué este script (siento mucho no disponer de la información que recopilé en su momento (script.sh) que permite instalar una versión específica de todo el sistema V8. El script descarga el código fuente de la versión especificada, la compila y la instala. El proceso puede ser largo según la máquina.
#!/usr/bin/env bash |
97.99) – INTERRUPCIÓN --- Configurar “screen” para el proceso de compilación
> apt-get install screen
96) Después de “chmod +x script.sh” para permitir su ejecución, lo ejecuto:
Opcionalmente hacerlo en un screen
> ./script.sh 0.10.29
salir del screen
De esta manera, descarga las fuentes y las compila en un directorio temporal /tmp/node-vX.YY.ZZ (PUEDE QUE TARDE ENTRE 15 MINUTOS O MAS SEGÚN EL ORDENADOR)
ME HE DADO CUENTA QUE AL FINALIZAR LA COMPILACIÓN YA QUEDA INSTALADO EN EL SISTEMA, SIN POSIBILIDAD DE REINSTALACIÓN, CONSIDERO IMPORTANTE GENERAR UN PAQUETE DEBIAN DESDE LAS FUENTES EN ESTE MOMENTO
96.99)MUEVO TODO EL DIRECTORIO COMPILADO A LA CARPETA ROOT POR SI ES NECESARIO REPETIR EL PROCESO, mv /tmp/node-vX.YY.ZZ /root
96.98) “>apt-get install checkinstall”
96.97) cd /root/node-vX.YY.ZZ
abrir un “screen” para este proceso
96.96) checkinstall, me he documentado muy poco sobre esto pero me ha generado un paquete DEB
Como descripción indico “NodeJs for ghost blog”<ENTER> dos veces
De la lista seleccionada, aprieto [3] y cambio el número de versión de “vX.YY.ZZ” a “X.YY.ZZ” sin letra,
<ENTER> para realizar el proceso de compilación y empaquetado… Vuelvo a esperar algún tiempo mayor de diez minutos… (Según la instalación de linux, vigilar el espacio disponible en /var
Debería indicar “Done. The new package has been installed…”
Cerrar el “screen” y hacer un backup de tu .deb…
Estas pruebas me han confirmado la instalación/desinstalación del paquete en otro sistema
|
p)
96) ESTE SERÍA UN BUEN MOMENTO PARA HACER UN BACKUP POR RSYNC DE TODO EL SISTEMA..
95) PROBANDO, a partir de la versión descargada de www.ghost.org (ghost-latest.zip)
> node –-version ( =v0.10.29)
> npm –-version ( =1.4.14)
unzip ghost-latest.zip –d prueba.com
cd prueba.com
cp config.example.js config.js
npm install –production (para hacer la instalación en modo de producción)
El proceso puede ser largo y con un poco de suerte debería de poder compilar sus dependencias automáticamente. (Recuerdo tener problemas de compilación del módulo sqlite3 al utilizar una versión diferente del node/npm). En mi caso, al disponer de poco espacio en la partición raiz también he tenido que hacer limpieza de agún kernel antiguo dejando unos 200 Megas libres para confirmar la instalación
npm start
Finalmente he podido comprobar que el servidor iniciaba y, en la primera ejecución, creaba las tablas necesarias…
94) Configuración del registro por dirección de email
El primer acceso ya me pide una dirección de email, y prefiero crear alguna configuación personalizada interna antes que usar los servicios externos...
93
Lamento la falta de organización, es hora de backups y reorganizaciones antes de continuar este proceso.
Intento continuarlo