Cómo configurar las capacidades de Linux en las invocaciones de servicio del modo de enjambre de Docker

Pregunta:

Estoy investigando la noción de bóveda que se ejecuta bajo el enjambre (1.12.x).

Un solo contenedor se iniciaría con: docker run -d --cap-add IPC_LOCK -p 8200:8200 -p 8215:8125 --name vault --volume /vagrant/vault:/vagrant/vault vault server -config=/path/to/vault.hcl

pero cuando quiero ejecutar esto en swarm como un servicio, parece que no hay forma de especificar la capacidad IPC_LOCK , para bloquear el intercambio cifrado para el servicio de bóveda en este caso.

¿Cómo puedo configurar las banderas –cap-add al iniciar un servicio en modo enjambre con el comando de docker service create ?

Respuesta:

A partir del 20.10, está disponible desde docker service create con --cap-add :

$ docker service create --help
...
      --cap-add list                       Add Linux capabilities
      --cap-drop list                      Drop Linux capabilities

O en un archivo de composición usado con docker stack deploy con la misma sintaxis del archivo de la versión 2:

version: "3.9"
services:
  app:
    image: your-image:tag
    cap_add:
    - CAP_NAME1
    - CAP_NAME2
    cap_drop:
    - CAP_NAME3
    - CAP_NAME4

[Respuesta original anterior a las 20.10]

Actualmente no es compatible, pero Docker está trabajando en una solución. La lógica detrás de no incluir la opción --cap-add ciegas está en un grupo grande, podría haber problemas de seguridad de que un administrador envíe contenedores con privilegios adicionales a un trabajador. El trabajador puede confiar en la ejecución de contenedores seguros que no pueden acceder al host, pero no desea permitir el acceso raíz remoto al host a través de un contenedor privilegiado.

La discusión sobre esto ha terminado en github en:

https://github.com/docker/docker/pull/26849#issuecomment-252704844

https://github.com/docker/swarmkit/issues/1030

https://github.com/docker/swarmkit/pull/1722

https://github.com/moby/moby/issues/25885#issuecomment-557790402 y https://github.com/docker/cli/pull/2199

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım