diff --git a/elements/docker/README.rst b/elements/docker/README.rst
new file mode 100644
index 000000000..af3e2f5d5
--- /dev/null
+++ b/elements/docker/README.rst
@@ -0,0 +1,15 @@
+======
+docker
+======
+
+Base element for creating images from docker containers.
+
+This element is incomplete by itself, you'll want to add additional elements,
+such as dpkg or yum to get richer features. At its heart, this element simply
+exports a root tarball from a named docker container so that other
+diskimage-builder elements can build on top of it.
+
+The variables `DISTRO_NAME` and `DIB_RELEASE` will be used to decide which
+docker image to pull, and are required for most other elements. Additionally,
+the `DIB_DOCKER_IMAGE` environment variable can be set in addition to
+`DISTRO_NAME` and `DIB_RELEASE` if a different docker image is desired.
diff --git a/elements/docker/element-deps b/elements/docker/element-deps
new file mode 100644
index 000000000..64b9ac34f
--- /dev/null
+++ b/elements/docker/element-deps
@@ -0,0 +1 @@
+dib-run-parts
diff --git a/elements/docker/element-provides b/elements/docker/element-provides
new file mode 100644
index 000000000..a72e04969
--- /dev/null
+++ b/elements/docker/element-provides
@@ -0,0 +1 @@
+operating-system
diff --git a/elements/docker/extra-data.d/01-docker-minimal b/elements/docker/extra-data.d/01-docker-minimal
new file mode 100755
index 000000000..fb0462bd2
--- /dev/null
+++ b/elements/docker/extra-data.d/01-docker-minimal
@@ -0,0 +1,32 @@
+#!/bin/bash
+#
+# Copyright 2015 Hewlett-Packard Development Company, L.P.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+if [ ${DIB_DEBUG_TRACE:-1} -gt 0 ]; then
+    set -x
+fi
+set -eu
+set -o pipefail
+
+# This is not using install-packages because it's before install-packages can
+# work - and is work needed to make it possible for it to work
+if [ -x $TMP_MOUNT_PATH/usr/bin/apt-get ] ; then
+    sudo chroot $TMP_MOUNT_PATH apt-get update
+    sudo chroot $TMP_MOUNT_PATH apt-get -y install python
+elif [ -x $TMP_MOUNT_PATH/bin/dnf ] ; then
+    sudo chroot $TMP_MOUNT_PATH dnf install -y findutils
+elif [ -x $TMP_MOUNT_PATH/usr/bin/yum ] ; then
+    sudo chroot $TMP_MOUNT_PATH yum install -y findutils
+fi
diff --git a/elements/docker/root.d/08-docker b/elements/docker/root.d/08-docker
new file mode 100755
index 000000000..78226859b
--- /dev/null
+++ b/elements/docker/root.d/08-docker
@@ -0,0 +1,36 @@
+#!/bin/bash
+#
+# Copyright 2015 Hewlett-Packard Development Company, L.P.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+if [ ${DIB_DEBUG_TRACE:-1} -gt 0 ]; then
+    set -x
+fi
+set -eu
+set -o pipefail
+
+if [ -f ${TARGET_ROOT}/.extra_settings ] ; then
+    . ${TARGET_ROOT}/.extra_settings
+fi
+
+[ -n "$DISTRO_NAME" ]
+[ -n "$DIB_RELEASE" ]
+
+DIB_DOCKER_IMAGE=${DIB_DOCKER_IMAGE:-${DISTRO_NAME}:${DIB_RELEASE}}
+
+container=$(docker run -d $DIB_DOCKER_IMAGE /bin/sh)
+docker export $container | sudo tar -C $TARGET_ROOT --numeric-owner -xf -
+docker rm $container
+
+sudo rm -f ${TARGET_ROOT}/.extra_settings