diff --git a/docker_templates/ironic/ironic-api/Dockerfile.j2 b/docker_templates/ironic/ironic-api/Dockerfile.j2
new file mode 100644
index 0000000000000000000000000000000000000000..3aa2322ef7dfd3c19204006fba94eabd76c2db61
--- /dev/null
+++ b/docker_templates/ironic/ironic-api/Dockerfile.j2
@@ -0,0 +1,17 @@
+FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-ironic-base:{{ tag }}
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+{% if install_type == 'binary' %}
+    {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %}
+
+RUN yum -y install \
+    openstack-ironic-api \
+    && yum clean all
+
+    {% endif %}
+{% endif %}
+
+COPY start.sh /
+COPY config-external.sh /opt/kolla/
+
+CMD ["/start.sh"]
diff --git a/docker_templates/ironic/ironic-api/config-external.sh b/docker_templates/ironic/ironic-api/config-external.sh
new file mode 100644
index 0000000000000000000000000000000000000000..b838ee19d0213903852f12a602c4408a77d311e8
--- /dev/null
+++ b/docker_templates/ironic/ironic-api/config-external.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+SOURCE="/opt/kolla/ironic-api/ironic.conf"
+TARGET="/etc/ironic/ironic.conf"
+OWNER="ironic"
+
+if [[ -f "$SOURCE" ]]; then
+    cp $SOURCE $TARGET
+    chown ${OWNER}: $TARGET
+    chmod 0644 $TARGET
+fi
diff --git a/docker_templates/ironic/ironic-api/start.sh b/docker_templates/ironic/ironic-api/start.sh
new file mode 100755
index 0000000000000000000000000000000000000000..9d449defbe6096c87035ec37c9716c3ee5880c50
--- /dev/null
+++ b/docker_templates/ironic/ironic-api/start.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+set -o errexit
+
+CMD="/usr/bin/ironic-api"
+ARGS=""
+
+source /opt/kolla/kolla-common.sh
+set_configs
+
+exec $CMD $ARGS
diff --git a/docker_templates/ironic/ironic-base/Dockerfile.j2 b/docker_templates/ironic/ironic-base/Dockerfile.j2
new file mode 100644
index 0000000000000000000000000000000000000000..02e00f40931a47778b637b026163cb45c93a0572
--- /dev/null
+++ b/docker_templates/ironic/ironic-base/Dockerfile.j2
@@ -0,0 +1,28 @@
+FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-base:{{ tag }}
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+{% if install_type == 'binary' %}
+    {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %}
+
+# until packaging is fixed, all of this is required
+# api: policy
+# conductor:MySQL-python
+RUN yum -y install \
+    python-oslo-log \
+    python-oslo-concurrency \
+    python-oslo-policy \
+    MySQL-python \
+    && yum clean all
+
+    {% elif base_distro in ['ubuntu', 'debian'] %}
+
+RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
+    && /bin/false
+
+    {% endif %}
+{% elif install_type == 'source' %}
+
+RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
+    && /bin/false
+
+{% endif %}
diff --git a/docker_templates/ironic/ironic-conductor/Dockerfile.j2 b/docker_templates/ironic/ironic-conductor/Dockerfile.j2
new file mode 100644
index 0000000000000000000000000000000000000000..65c816d62c6348a116476dd8b4ff2f5f3223daab
--- /dev/null
+++ b/docker_templates/ironic/ironic-conductor/Dockerfile.j2
@@ -0,0 +1,17 @@
+FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-ironic-base:{{ tag }}
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+{% if install_type == 'binary' %}
+    {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %}
+
+RUN yum -y install \
+    openstack-ironic-conductor \
+    && yum clean all
+
+    {% endif %}
+{% endif %}
+
+COPY start.sh /
+COPY config-external.sh /opt/kolla/
+
+CMD ["/start.sh"]
diff --git a/docker_templates/ironic/ironic-conductor/config-external.sh b/docker_templates/ironic/ironic-conductor/config-external.sh
new file mode 100644
index 0000000000000000000000000000000000000000..b838ee19d0213903852f12a602c4408a77d311e8
--- /dev/null
+++ b/docker_templates/ironic/ironic-conductor/config-external.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+SOURCE="/opt/kolla/ironic-api/ironic.conf"
+TARGET="/etc/ironic/ironic.conf"
+OWNER="ironic"
+
+if [[ -f "$SOURCE" ]]; then
+    cp $SOURCE $TARGET
+    chown ${OWNER}: $TARGET
+    chmod 0644 $TARGET
+fi
diff --git a/docker_templates/ironic/ironic-conductor/start.sh b/docker_templates/ironic/ironic-conductor/start.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c766f04c5b7d0a7d898e320dd0e81346c733c3da
--- /dev/null
+++ b/docker_templates/ironic/ironic-conductor/start.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+set -o errexit
+
+CMD="/usr/bin/ironic-conductor"
+ARGS=""
+
+source /opt/kolla/kolla-common.sh
+set_configs
+
+exec $CMD $ARGS
diff --git a/docker_templates/ironic/ironic-discoverd/Dockerfile.j2 b/docker_templates/ironic/ironic-discoverd/Dockerfile.j2
new file mode 100644
index 0000000000000000000000000000000000000000..6de58d8610dc0487b02dcb6fa11ff18d7c447745
--- /dev/null
+++ b/docker_templates/ironic/ironic-discoverd/Dockerfile.j2
@@ -0,0 +1,17 @@
+FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-ironic-base:{{ tag }}
+MAINTAINER Kolla Project (https://launchpad.net/kolla)
+
+{% if install_type == 'binary' %}
+    {% if base_distro in ['fedora', 'centos', 'oraclelinux'] %}
+
+RUN yum -y install \
+    openstack-ironic-discoverd \
+    && yum clean all
+
+    {% endif %}
+{% endif %}
+
+COPY start.sh /
+COPY config-external.sh /opt/kolla/
+
+CMD ["/start.sh"]
diff --git a/docker_templates/ironic/ironic-discoverd/config-external.sh b/docker_templates/ironic/ironic-discoverd/config-external.sh
new file mode 100644
index 0000000000000000000000000000000000000000..a3f82b8f3079a4378ab9b78864c4edb13dada5f7
--- /dev/null
+++ b/docker_templates/ironic/ironic-discoverd/config-external.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+SOURCE="/opt/kolla/ironic-discoverd/discoverd.conf"
+TARGET="/etc/ironic-discoverd/discoverd.conf"
+OWNER="ironic"
+
+if [[ -f "$SOURCE" ]]; then
+    cp $SOURCE $TARGET
+    chown ${OWNER}: $TARGET
+    chmod 0644 $TARGET
+fi
diff --git a/docker_templates/ironic/ironic-discoverd/start.sh b/docker_templates/ironic/ironic-discoverd/start.sh
new file mode 100755
index 0000000000000000000000000000000000000000..093dc517af73d690bc0a7fda4cce290dda8284e4
--- /dev/null
+++ b/docker_templates/ironic/ironic-discoverd/start.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+set -o errexit
+
+CMD="/usr/bin/ironic-discoverd"
+ARGS=""
+
+source /opt/kolla/kolla-common.sh
+set_configs
+
+exec $CMD $ARGS