Este blog explicará:
¿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.