Con las nuevas versiones (y es importante sobre todo si usas los repositorios oficiales y no los de tu distribución), la ubicación por defecto de la configuración de Docker Engine es /etc/docker/daemon.json, y sí, efectivamente se trata de un fichero JSON.

Aunque se nos proporciona una plantilla para que sepamos de qué opciones dispone, esta es la mía (Fedora de desarrollo local), por si sirve a alguien:

{
    "group": "wheel",
    "icc": false,
    "log-driver": "journald",
    "selinux-enabled": true,
    "storage-driver": "overlay2"
}

Creo que son las configuraciones más importantes:

  • Ya que usar Docker equivale a ser root en muchos casos, usar el grupo wheel te facilita la tarea: todos los administradores tienen acceso al socket de Docker por defecto.
  • Deshabilitar icc (Inter-Container Communication) hace que los contenedores solo se puedan comunicar entre sí si comparten un link o una red. Normalmente en producción ha de ser así, así que mejor te vas acostumbrando en desarrollo.
  • Los otros controladores de almacenamiento siempre me han dado errores, overlay2 funciona de maravilla.
  • journald es el único controlador de registros con soporte completo y que no te infla el sistema hasta quedarse sin espacio, como hace el json-file que viene por defecto.
  • SELinux es importante tenerlo activado siempre que se pueda.