‫Brandon está con el primero.
‫La siguiente pregunta aquí es demandar versus usuario.
‫¿Cómo prefiere utilizar usuarios no root en contenedores y mantener los permisos de archivos en
‫Hossain?
‫¿Cuál es la mejor práctica actual para los permisos en Docker?
‫No es justo decir que Docker con los archivos que está ejecutando en un contenedor puede
‫ser muy frustrante, especialmente si está utilizando montajes de enlace, por lo que los montajes de enlace combinan los permisos de los archivos host
‫con las cosas que se ejecutan en el contenedor y eso a menudo puede te llevo a sacarte el pelo y
‫volverte un poco loco y algunos de mis proyectos más difíciles han sido cuando necesitábamos almacenamiento de archivos compartidos en varios servidores para
‫que varios contenedores en diferentes hosts puedan acceder a los mismos archivos con los permisos correctos y también
‫usar el mínimo privilegio con usuarios no administradores usuarios no root derecho.
‫Entonces eso puede ser realmente complicado.
‫Yo diría usuario versus ir.
‫Entonces, cuando me preguntas sobre el usuario Brandon, supongo que estás hablando en la creación de imágenes DR porque
‫es allí donde los usuarios aplicaron correctamente.
‫Y tiende a funcionar mejor que Sue lo hace al construir un perro o una imagen.
‫Así que al menos eso es lo que entiendo por qué ir Sue se usa a menudo dentro de las imágenes de Docker
‫para construir y no sé realmente la razón por la que probablemente lo aprendí en algún momento hace años y luego
‫lo olvidé rápidamente.
‫Entonces, supongo que de lo que realmente está hablando su pregunta es cuando está
‫creando imágenes y diría que el usuario es la mejor práctica para usar líneas de archivos Docker si está dentro de un comando de ejecución y necesita cambiar los permisos en una
‫parte específica de ese comando de ejecución y ahí es donde pasa a
‫mí tiene sentido porque tal vez necesite hacer cosas como usuario root pero no siempre dentro de ese comando de ejecución.
‫Entonces, tal vez es cuando eliges pasar y otras cosas bien.
‫Así que creo que, en gran medida, lo que termina sucediendo con las personas que tienen permisos no son los archivos
‫de la imagen, sino los archivos durante el tiempo de ejecución.
‫Entonces, una vez que su contenedor se inicia, digamos que tiene una aplicación de nodo y esa aplicación de
‫nodo se está ejecutando es un nodo de usuario y tiene un directorio de carga de usuarios y luego esos archivos se almacenan en
‫el host y se almacenarán como el nodo de usuario y porque eso es lo que están ejecutando los nodos lo está ejecutando y luego tiene algún otro
‫proceso, tal vez un contenedor diferente y usando un volumen compartido o algo o una cantidad de compra
‫y eso no se ejecuta como el mismo usuario y necesita acceder a esos archivos leídos bien y te metes
‫en estos problemas en torno a los permisos.
‫Entonces, diría que al final del día si no puede resolver estos problemas con los que se muestran en el mod, entonces no lo hace.
‫En otras palabras, dentro del archivo acoplable, si está haciendo, por ejemplo, un comando de copia en
‫lugar de un archivo médico, ahora puede hacer lo que se muestra para que cuando esté copiando archivos y ellos copien con los usuarios
‫correctos a los que se les da permiso. esos archivos no puedes hacer un comando.
‫No lo creo aún, aunque esa puede ser una característica que en realidad es algo y buscar mucho de eso
‫se ha agregado.
‫El Ducker
‫Así que vamos a la documentación oficial a la derecha para acercar y si voy a sí.
‫Entonces, si busco brillado, no veo nada.
‫Pero si voy a lo que se muestra, puede ver dónde, si usa el anuncio o la copia, puede copiarlos con
‫los permisos correctos.
‫Eso es algo enorme que sucedió hace uno o dos años que nos ahorra
‫mucho espacio porque no tenemos que cambiar los permisos en los archivos, el paso uno y dos es si
‫necesita cambiar los permisos de directorios en tiempo de ejecución como usted necesita tener un volumen configurado con ciertos permisos.
‫Para eso sirve un guión de punto de entrada.
‫Entonces, si tuviera que ver un ejemplo como si volviéramos aquí a Docker Hub y yo entrara en mi secuela y si fuera a
‫uno de ellos, mi secuela de archivos Docker probablemente encontraría que hay un punto de entrada script especialmente con cosas como
‫bases de datos y un script de punto de entrada, algo que puede comenzar cada
‫vez que se inicia un contenedor y, a menudo, en estos scripts de puntos de entrada verá cosas
‫como Necesito que muestre todo en este directorio y lo modifique o ya sabe hacer un plus a la
‫derecha global o algo que no siempre es lo más seguro, pero si necesita cambiar los permisos
‫sobre la marcha, lo haría dentro del script.
‫Ahora, por supuesto, el problema en este script es que se está ejecutando como el usuario, creo, ya que se está ejecutando como el usuario
‫que configuró en un archivo acoplable, por lo que se convierte en otro problema porque si necesita cambiar los permisos
‫en los archivos para que sean legibles y legible por el usuario del nodo pero el script se ejecuta como un
‫usuario del nodo, entonces tiene problemas porque no puede, no puede ir a la ruta.
‫Esencialmente en ese punto.
‫Por lo tanto, diría que no hay una solución fácil o mejor para eso, pero los permisos son algo
‫en lo que probablemente podría escribir una sección completa del curso sobre cómo escribir una sesión de capacitación completa de varias horas sobre las diversas formas en
‫que se tratan los permisos.
‫Un pequeño bocado allí.
‫Lo último que diré es que sé que voy a continuar
‫con tu pregunta, pero creo que surge mucho que los permisos de archivos en Linux son solo números.
‫De hecho, esto es en realidad un consejo que me dio Phil Estes, quien es
‫alguien que implementó el espacio de nombres que emite el usuario.
‫Lamento la función de espacio de nombres de usuario dentro de Docker que no se ha habilitado de forma predeterminada.
‫Pero si desea que todos sus contenedores se ejecuten como no root, lo habilitaría.
‫Y él fue uno de los que ayudó a agregar esa característica y estábamos hablando un día y señaló que
‫conoces al usuario I. RE. y el grupo I. RE. son solo ideas que puede establecer ese número a
‫lo que quiera.
‫Son solo números.
‫Entonces, si necesita archivos en el host, por ejemplo, para que coincidan con los del contenedor, si simplemente
‫configura todo por I. RE. número, los nombres de usuario son irrelevantes en ese punto.
‫Ellos son realmente el yo. RE. que va a ver si coincide con esos permisos.
‫Entonces, en un caso en el que estaba trabajando en un proyecto y necesitábamos compartir archivos a través de múltiples
‫contenedores, pero todos se ejecutaban como usuarios diferentes y necesitábamos asegurarnos de que los permisos coincidieran.
‫Realmente nos aseguramos de que esos archivos estuvieran usando los números correctos o yo. RE. para el propietario y el grupo y luego
‫todo comenzó a funcionar porque eso realmente no importaba que no hubiéramos creado el usuario en el host, por ejemplo,
‫que coincidía con ese yo. RE. dentro del contenedor.
‫Solo nos aseguramos de que yo. RE. los números coinciden, así que eso es un pequeño consejo.
‫Me tomó un tiempo entender eso y entender cómo funcionaban, pero en realidad al final
‫del día, no hay comparación para asegurarse de que los números de las lecturas y los derechos y permisos
‫coincidan con lo que el usuario que ejecuta el comando está haciendo.
‫Buena pregunta.
‫Me alegra que lo hayas mencionado porque eso no es algo que hayamos discutido aquí
‫recientemente y deberíamos hablar más al respecto.