diff --git a/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php b/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php
index b9b3431..a95b602 100644
--- a/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php
+++ b/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php
@@ -8,6 +8,7 @@
 namespace Drupal\Core\DependencyInjection;
 
 use Symfony\Component\DependencyInjection\ContainerBuilder as BaseContainerBuilder;
+use Symfony\Component\DependencyInjection\Definition;
 
 /**
  * Drupal's dependency injection container.
@@ -24,5 +25,10 @@ class ContainerBuilder extends BaseContainerBuilder {
     // functions. This default is overridden by drupal_language_initialize()
     // during language negotiation.
     $this->register(LANGUAGE_TYPE_INTERFACE, 'Drupal\\Core\\Language\\Language');
+
+    // The default kernel for handling requests.
+    $this->register('drupal.kernel', 'Drupal\Core\DrupalKernel')
+      ->addArgument(new Definition('Symfony\Component\EventDispatcher\EventDispatcher'))
+      ->addArgument(new Definition('Symfony\Component\HttpKernel\Controller\ControllerResolver'));
   }
 }
diff --git a/index.php b/index.php
index b63ba1f..4042ade 100644
--- a/index.php
+++ b/index.php
@@ -11,10 +11,7 @@
  * See COPYRIGHT.txt and LICENSE.txt files in the "core" directory.
  */
 
-use Drupal\Core\DrupalKernel;
 use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\EventDispatcher\EventDispatcher;
-use Symfony\Component\HttpKernel\Controller\ControllerResolver;
 
 /**
  * Root directory of Drupal installation.
@@ -34,9 +31,9 @@ request($request);
 
 drupal_bootstrap(DRUPAL_BOOTSTRAP_CODE);
 
-$dispatcher = new EventDispatcher();
-$resolver = new ControllerResolver();
-
-$kernel = new DrupalKernel($dispatcher, $resolver);
+$kernel = drupal_container()->get('drupal.kernel');
 $response = $kernel->handle($request)->prepare($request)->send();
+
+// @todo HttpKernelInterface does not define terminate(), so calling this makes
+//   $kernel less easily swappable.
 $kernel->terminate($request, $response);
