ventana acoplable en ventana acoplable sin modo privilegiado

ventana acoplable en ventana acoplable sin modo privilegiado

La última vez usé Docker en Docker para corredores, perorequiere modo privilegiado

componer archivo:

version: '3.7'
services:
  runner:
    image: gitlab/gitlab-runner:latest
    volumes:
      - ./config:/etc/gitlab-runner
      - ./run:/var/run/
#      - /var/run/docker.sock:/var/run/docker.sock

  docker:
    image: docker:dind
    restart: always
    privileged: true # <-- security problems
    volumes:
      - ./run:/var/run/

Tengo una computadora personal. Tengo un equipo de Gitlab que necesita ejecutar docker buildscripts docker-compose upcon Gitlab CI. Realmente quiero acelerar la CI. Por eso comparto mianfitriónventana acoplable concorredores, ahora tienen caché de Docker (imágenes, etc.) y cuando una etapa crea una imagen y otra lo requiere, es realmente rápido.

Tengo el mismo problema con Jenkins. Necesito compartir la ventana acoplable del host con los nodos trabajadores.

La última vez quise probar el nuevo enfoque y ejecutar corredores con su propia ventana acoplable. Casi no tengo 2 cosas importantes: - límite de recursos (quiero compartir 7 de 8 núcleos de CPU, 10 de 16 GB de memoria, algunos límites de HDD) - seguridad

Es importante agregar: no tengo scripts de CI que requieran GPU, capacidades de red, montaje de algunos dispositivos, etc. Por lo general, lo hacen de manera simple docker buildy docker push, a veces, necesito agarrar artefactos docker cp, eso es todo. Pregunta principal: ¿cómoejecute Docker en Docker sin privilegios de root para la máquina host?

Ambos: el uso compartido de sockets o el modo privilegiado dan vulnerabilidades a las máquinas host, y tener una máquina virtual (como VirtualBox o algo así) es lento y difícil de hacer, también quiero compartir recursos y quiero esa ventana acoplable.poderuse 10 de 16 GB, pero 10 GB deberían quedar libres cuando no los use.

Tengo algunos errores no informativos de dind contatiner (antes de fallar) cuando lo ejecuto con los privilegios habituales:

gitlab-runner-docker | mount: permission denied (are you root?)
gitlab-runner-docker | mount: permission denied (are you root?)
gitlab-runner-docker | Could not mount /sys/kernel/security.
gitlab-runner-docker | AppArmor detection and --privileged mode might break.

¿Qué problemas tendré si intento ejecutar Docker en Docker sin modo privilegiado? ¿Cómo hacerlo?

Respuesta1

bueno, con respecto al equilibrio de carga de la memoria ram, no puedo evitarlo, pero puedes ejecutar una ventana acoplable en la ventana acoplable (dind) sin permisos sudo agregando tu usuario actual al grupo de la ventana acoplable,

No veo la seguridad de los sockets compartidos porque pierde su integridad pero recomendaría instanciar el dind con el parámetro el compositor con el parámetro privilegiado: true

información relacionada