Docker utilise une architecture client-serveur. Le client Docker parle au daemon Docker, qui se charge de la construction, de l'exécution et de la distribution des containers Docker. Le client et le daemon Docker peuvent s'exécuter sur le même système ou vous pouvez connecter un client Docker à un daemon Docker distant. Le client et le daemon Docker communiquent à l'aide d'une API REST, via des sockets UNIX ou une interface réseau.