¿Debo ejecutar contenedores de Docker privilegiados??

¿Debo ejecutar contenedores de Docker privilegiados??
Los contenedores Docker son el componente principal de la plataforma Docker que permite a los desarrolladores construir e implementar el programa en el entorno de tiempo de ejecución virtualizado. Son administrados e instruidos por Docker Images. El contenedor Docker encapsula el proyecto y todas sus dependencias. Los contenedores de Docker pueden ser ejecutables en modo privilegiado, una función poderosa de la plataforma Docker que permite a los programadores ejecutar contenedores con acceso raíz, lo que significa que los contenedores pueden acceder a los privilegios completos de host

Este blog explicará:

  • ¿Debería ejecutar contenedores de Docker privilegiados??
  • Cómo ejecutar el contenedor Docker en modo privilegiado?

¿Debería ejecutar contenedores de Docker privilegiados??

No se recomienda ejecutar contenedores en modo privilegiado porque es arriesgado. Al igual que el modo privilegiado, el contenedor raíz tendrá acceso completo como usuario raíz del host y evitará todas las comprobaciones. Otra razón es que si los recursos de hardware del host y el núcleo están expuestos a un atacante externo, el sistema puede estar constantemente en peligro. Sin embargo, ejecutar el contenedor privilegiado es necesario para algunas situaciones, como ejecutar Docker dentro de otra plataforma Docker.

Cómo ejecutar un contenedor de Docker privilegiado?

Para ejecutar los contenedores Docker en un modo privilegiado para otorgar privilegios de host, siga las instrucciones proporcionadas.

Paso 1: Crea DockerFile

Primero, abra el editor de código de Visual Studio y cree un nuevo Dockerfile. Después de eso, pegue el siguiente código en "Dockfile" Como se muestra abajo. Estas instrucciones ejecutarán el programa de Golang simple en el servidor:

De Golang: 1.8 como constructor
WorkDir/Go/SRC/App
Copia principal.ir .
Ejecutar ir compilación -o servidor web .
CMD ["./Servidor web"]

Paso 2: Crear archivo de programa

A continuación, cree un "principal.irArchivo "y pegue el siguiente código Golang en el archivo. Esto mostrará el "Hola! Bienvenido al tutorial de Linuxhint":

Paquete principal
importar (
"FMT"
"registro"
"net/http"
)
Funchandler (w http.Responsewriter, r *http.Pedido)
fmt.Fprintf (w, "Hola! Bienvenido al tutorial de Linuxhint ")

funcmain ()
http.Manefunc ("/", manejador)
registro.Fatal (http.Listenandserve ("0.0.0.0: 8080 ", nil))

Paso 3: Build Docker Image

Después de eso, cree la nueva imagen de Docker utilizando el comando proporcionado. El "-TSe utiliza la bandera para especificar la etiqueta o el nombre de la imagen Docker:

$ Docker Build -t Golang: Último .

Paso 4: Ejecutar el contenedor Docker en modo privilegiado

A continuación, ejecute el contenedor Docker en modo privilegiado ejecutando la imagen recién creada junto con el "-privilegiado" opción. Aquí el "-d"La opción se usa para ejecutar el contenedor en segundo plano y la"-pagLa opción se utiliza para especificar el número de puerto para el host local:

$ Docker Run -Privileged -D -P 8080: 8080 Golang

Luego, navegue al "Localhost: 8080"Para verificar si la aplicación se está ejecutando o no:


Se puede observar que hemos implementado con éxito el programa y ejecutar el contenedor en modo privilegiado.

Paso 5: Enumere los contenedores Docker

Enumere todos los contenedores con la ayuda del "Docker PS"Comando junto con el"-a" opción:

$ Docker PS -A

Tenga en cuenta la ID del contenedor para verificar si se está ejecutando en modo privilegiado o no:

Paso 6: Verificar el contenedor se ejecuta en modo privilegiado

Para verificar si el contenedor se ejecuta en modo privilegiado o no, utilice el "Docker inspeccionarComando "junto con formato mencionado y ID de contenedor copiado:

$ Docker Inspect --Format = '.Hostconfig.Privilegiado 'b46571b87Efd

El "verdadero"La salida significa que el contenedor se está ejecutando en modo privilegiado:

Nuevamente, ejecute el comando proporcionado con otra identificación del contenedor:

$ Docker Inspect --Format = '.Hostconfig.Privilegiado 'D3187AB39EE9

Aquí, puedes ver el "FALSO"Salida que indica el contenedor que tiene una ID especificada no se está ejecutando en modo privilegiado:


Hemos discutido si los usuarios deberían ejecutar el contenedor Docker en modo privilegiado.

Conclusión

No, no se recomienda ejecutar contenedores en modo privilegiado, ya que crea un riesgo de seguridad. Los contenedores con acceso a la raíz tienen privilegios completos como acceso a la raíz del host y evitarán todas las comprobaciones. Para ejecutar el contenedor Docker con modo privilegiado, use el "Docker Run -Privileged" dominio. Este artículo ha elaborado si debe ejecutar contenedores de Docker privilegiados.