cultura y tecnología
19 meneos
301 clics

Primeros pasos con Docker: Contenedores en Linux

Este artículo ofrece una introducción completa a Docker en Linux, explicando su arquitectura, instalación y comandos básicos. También aborda la creación de Dockerfiles, la gestión de redes y la integración de soluciones VPN, además de resaltar buenas prácticas de seguridad. Ideal para quienes buscan desplegar aplicaciones de manera eficiente y segura en entornos variados.

| etiquetas: docker , contenedores , linux , devops , instalación , redes , seguridad
Primeros pasos en docker: usa podman.
Primeros pasos en docker: saber lo básico de linux. Montar volumenes, conocer systemd, que es un proceso etc
#1 Systemd y los contenedores no tienen nada que ver entre sí.
#2 no, y docker quien lo ejecuta xD
Si me dices podman que es daemonless
#4 Esto... :shit:

Un daemon lo puedes lanzar desde un gestor de servicios como sysvinit, openrc, runit, systemd... o cualquiera de las otras decenas de ellos que existen. Lo puedes lanzar desde tu shell, lo puedes detachar de tu sesión y enviarlo a lo que sea que tengas en pid 1, lo puedes controlar con un gestor de procesos como supervisord... De hecho, en macOS o Windows, Docker se lanza sobre un Linux virtualizado sin rastro alguno de systemd.

Que, porque tú lances dockerd desde systemd,…   » ver todo el comentario
#5 Todo lo que dices es correcto. Pero a día de hoy systemd esta en la inmensa mayoría de distribuciones. De windows no quiero saber nada xD
#6 Y ext4 el fs más usado, lo cual no lo convierte en un fundamento para conocer KDE.

Esa inmensa mayoría de distribuciones cuentan con paquetes para instalar Docker que gestionan la creación del servicio de manera totalmente transparente para el usuario.

Si nos queremos poner puristas e ir al núcleo de los fundamentos de la containerización (que la RAE me perdone) podemos mencionar chroot, cgroups, lxc... Pero los gestores de servicios en Linux, por más que dockerd suela correr como hijo de alguno, son una cuestión completamente ortogonal a la de los contenedores.
#9 eso es, ese es mi punto. Por ejemplo saber como funcionan los permisos en linux es esencial para como mínimo no crear imágenes que se ejecuten como root. En fin, que como todo es mejor empezar la casa por los cimientos. En mi opinión saber como se ejecuta docker, como hacer que arranque al inició etc es importante
#11 Sin duda conocer todo eso es muy importante a la hora de conocer cómo funciona un sistema Linux. A lo que me refería es que ésas son cuestiones que se abstraen desde la perspectiva de los contenedores.

Es decir, la física es importante para entender cómo se construyen las moléculas, pero si estamos hablando de un proceso biológico como la reproducción de la zarigüeya quizás sea un tema menor (vale, es un ejemplo de mierda :shit: pero se entiende el punto, no?).

Yo trabajo en desarrollo…   » ver todo el comentario
#9 Docker esta muy bien.... si se usa bien.

Como todo.

las modas son muy malas, y en muchas ocasiones hay soluciones mejores
#2 Hoy todo tiene que ver con systemd...

por desgracia.

:troll:
#1 Eso serán primeros pasos con linux...
#1 ¿Te sabes este chiste?
- Cuéntalo desde el principio.
- Al principio fue el Big Bang dónde había una densidad altísima...
#1 no necesitas saber nada de Systemd para usar Docker
#10 LXD está convietiendose en el systemd de los containers...

Los contenedores son LXC
#13 Para nada te has liado, en realidad tienen mucha relación: los lxc son precursores de docker.

A lo que me refiero a que ese tema ha evolucionado mucho en los últimos tiempos y las funcionalidades de los contenedores se han ido reduciendo al mínimo imprescindible. La gran mayoría de servicios que antes corrían típicamente sobre VMs o LXC ahora suelen hacerlo sobre plataformas como Kubernetes, que gestionan toda la parte de networking, almacenamiento, recursos, permisos...

Conceptualmente…   » ver todo el comentario
#14 Gracias, me iré informando.

Para mi es muy importante que los contenedores puedan montar unidades del host.
Si me peta un mailserver, por ejemplo, prefiero restablecer los servicios básicos en dos minutos aunque luego me lleve algunas horas restaurar los buzones. El cliente puede seguir mandando y recibiendo correo en unos minutos aunque tenga que esperar mas a tener todos los buzones.
Los contenedores gigantes son muy lentos de copiar y restaurar.
#18 LXC puede hacerlo
#26 Si, si, lo uso muchísimo.
#14 No, LXC no son precursores de Docker en el sentido de que Docker sea un sustituto.

Docker no tiene la misma funcionalidad que LXC. Con LXC despliegas sistemas (como una VM) con Docker, servicios.

En lo que cuentas, tienes toda la razón, pero las putas modas hacen que se use Docker en escenarios donde claramente LXC seria superior por ser más sencillo y simple.

Los dos sistemas tienen su nicho.
#25 En realidad, los LXC no sólo son precursores de Docker, sino que además Docker nació como una capa de abstracción sobre LXC y, hasta que desarrollaron libcontainer, LXC era el único runtime disponible para Docker.

Como bien dices, actualmente tienen enfoques muy diferentes y, yo personalmente, no usaría Docker en producción (aunque aún tengo que sufrir alguno :foreveralone:) teniendo en cuenta lo sencillo que es hoy en día montar un cluster de Kubernetes.
#29 Kubernetes es un orquestador de contenedores, normalmente dockers
#30 No. Docker como runtime de Kubernetes lleva años descontinuado. Lo que usa Kubernetes por defecto (y también Docker) es containerd.

Tengo unos cuantos clusters de Kubernetes en producción y no hay rastro de Docker en ninguno de ellos.
#31 Pues tendre que mirarlo... sabia de containerd pero no me he parado demasiado, pense que se seguia xon Docker o Podman.por debajo
#32 Docker extrajo containerd de su engine (digamos que es la parte de alto nivel del runtime) y se lo donó a la CNCF. Hoy en día containderd lo usan, por defecto, Docker, muchos sabores de Kubernetes, gVisor... Otros, como OpenShift, usan CRI-O en su lugar y otros, como Podman, directamente no utilizan un componente equivalente y corren directamente los contenedores sobre runc (que sería la parte de bajo nivel del runtime).
#_8 LXC no está para nada desfasado. No entiendo la necesidad de migrarlos a nada.

LXC cubre unos escenarios, Docker otros. Para nada son sustitutos uno de otro
Que viejo estoy, me medio jubilé usando LXC que iba de PM.

Me tengo que poner un poco al día, firmé un NDA tras irme pero solo me quedan cuatro años y si no la palmo, no quiero que me pille muy atrasado.
#7 Sigue existiendo, pero tiene capacidades diferentes a Docker/Podman y parece que no "está de moda". Ahora mismo estoy migrando unos contenedores lxc añejos, pero sin cambiar de tecnología, porque lo que más se parece y me puede valer es Lxd/Incus, pero no se por qué no me acaba de convencer para según que cosas.
#8 A mi LXD me conquistó por su integración con proxmox que de siempre me ha gustado mucho, antes usaba otros contenedores que no recuerdo su nombre pero el rendimiento siempre me ha parecido espectacular.
#7 LXC está más orientado al reemplazo de VMs y los contenedores al aislamiento de servicios. Tienen muchas cosas en común, pero sus casos de usos son distintos.

#8 LXC en Proxmox VE va como la seda. Y la gestión de networking y VMs es muy superior a la LXD.
#12 Si. Quizás me he liado, yo pensaba mas en VM que en servicios.
#12 Exsctamente. Docker es para despliegue de servicios y LXC para despliegue de sistemas

A veces interesa una cosa y a veces otra
#7 Iba y va.
Proxmox usa LXC y sigue siendo mejor solucion que Docker en muchos escenarios porque dan mucha mas flexibilidad y son muy fáciles de gestionar.

menéame