diff --git a/docker_templates/designate/designate-api/Dockerfile.j2 b/docker_templates/designate/designate-api/Dockerfile.j2
new file mode 100644
index 0000000000..203d6f0ff9
--- /dev/null
+++ b/docker_templates/designate/designate-api/Dockerfile.j2
@@ -0,0 +1,17 @@
+FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-designate-base:{{ tag }}
+MAINTAINER Kolla Project (https://launchpad.net.kolla)
+
+{% if install_type == 'binary' %}
+    {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %}
+
+RUN yum install -y \
+    openstack-designate-api \
+    && yum clean all
+
+    {% endif %}
+{% endif %}
+
+COPY start.sh /start.sh
+COPY config-external.sh /opt/kolla/
+
+CMD ["/start.sh"]
diff --git a/docker_templates/designate/designate-api/config-external.sh b/docker_templates/designate/designate-api/config-external.sh
new file mode 120000
index 0000000000..1dbb444c72
--- /dev/null
+++ b/docker_templates/designate/designate-api/config-external.sh
@@ -0,0 +1 @@
+../../../docker/common/designate/designate-api/config-external.sh
\ No newline at end of file
diff --git a/docker_templates/designate/designate-api/start.sh b/docker_templates/designate/designate-api/start.sh
new file mode 120000
index 0000000000..b216331468
--- /dev/null
+++ b/docker_templates/designate/designate-api/start.sh
@@ -0,0 +1 @@
+../../../docker/common/designate/designate-api/start.sh
\ No newline at end of file
diff --git a/docker_templates/designate/designate-backend-bind9-data/Dockerfile.j2 b/docker_templates/designate/designate-backend-bind9-data/Dockerfile.j2
new file mode 100644
index 0000000000..c34cd5954d
--- /dev/null
+++ b/docker_templates/designate/designate-backend-bind9-data/Dockerfile.j2
@@ -0,0 +1,6 @@
+FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-base:{{ tag }}
+MAINTAINER Kolla Project (https://launchpad.net.kolla)
+
+VOLUME [ "/var/named" ]
+
+CMD [ "/bin/true" ]
diff --git a/docker_templates/designate/designate-backend-bind9/Dockerfile.j2 b/docker_templates/designate/designate-backend-bind9/Dockerfile.j2
new file mode 100644
index 0000000000..4b215f8f0c
--- /dev/null
+++ b/docker_templates/designate/designate-backend-bind9/Dockerfile.j2
@@ -0,0 +1,17 @@
+FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-designate-base:{{ tag }}
+MAINTAINER Kolla Project (https://launchpad.net.kolla)
+
+{% if install_type == 'binary' %}
+    {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %}
+
+RUN yum install -y bind \
+    && yum clean all \
+    && cp -pr /var/named /opt/kolla/var-named
+
+    {% endif %}
+{% endif %}
+
+COPY start.sh /start.sh
+COPY config-external.sh /opt/kolla/
+
+CMD ["/start.sh"]
diff --git a/docker_templates/designate/designate-backend-bind9/config-external.sh b/docker_templates/designate/designate-backend-bind9/config-external.sh
new file mode 120000
index 0000000000..a6b9418b76
--- /dev/null
+++ b/docker_templates/designate/designate-backend-bind9/config-external.sh
@@ -0,0 +1 @@
+../../../docker/common/designate/designate-backend-bind9/config-external.sh
\ No newline at end of file
diff --git a/docker_templates/designate/designate-backend-bind9/start.sh b/docker_templates/designate/designate-backend-bind9/start.sh
new file mode 120000
index 0000000000..df9938517e
--- /dev/null
+++ b/docker_templates/designate/designate-backend-bind9/start.sh
@@ -0,0 +1 @@
+../../../docker/common/designate/designate-backend-bind9/start.sh
\ No newline at end of file
diff --git a/docker_templates/designate/designate-base/Dockerfile.j2 b/docker_templates/designate/designate-base/Dockerfile.j2
new file mode 100644
index 0000000000..4aa05f47c7
--- /dev/null
+++ b/docker_templates/designate/designate-base/Dockerfile.j2
@@ -0,0 +1,40 @@
+FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-base:{{ tag }}
+MAINTAINER Kolla Project (https://launchpad.net.kolla)
+
+{% if install_type == 'binary' %}
+    {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %}
+
+# Install designate-api because of /etc/designate/policy.json, which
+# is needed in all services. This is probably a packaging bug. We do
+# need the complete policy file because of some of the containers'
+# requiring it. Remove the package when the file is moved though.
+RUN yum install -y \
+    MySQL-python \
+    openstack-designate-api \
+    openstack-designate-common \
+    python-tooz \
+    && yum clean all \
+    && cp /etc/designate/policy.json /tmp/ \
+    && rpm -e openstack-designate-api \
+    && mv /tmp/policy.json /etc/designate/
+
+    {% elif base_distro in ['ubuntu', 'debian'] %}
+
+RUN echo '{{ install_type}} not yet available for {{ base_distro }}' \
+    && /bin/false
+
+    {% endif %}
+{% elif install_type == 'source' %}
+
+ADD ./designate.tar /
+RUN ln -s /designate-* /designate
+
+RUN cd /designate \
+    && useradd --user-group designate \
+    && pip install -r requirements.txt \
+    && pip install /designate \
+    && mkdir /etc/designate /var/log/designate \
+    && cp -r /designate/etc/designate/* /etc/designate/ \
+    && rm -rf /root/.cache
+
+{% endif %}
diff --git a/docker_templates/designate/designate-central/Dockerfile.j2 b/docker_templates/designate/designate-central/Dockerfile.j2
new file mode 100644
index 0000000000..e90c3bb2ee
--- /dev/null
+++ b/docker_templates/designate/designate-central/Dockerfile.j2
@@ -0,0 +1,17 @@
+FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-designate-base:{{ tag }}
+MAINTAINER Kolla Project (https://launchpad.net.kolla)
+
+{% if install_type == 'binary' %}
+    {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %}
+
+RUN yum install -y \
+    openstack-designate-central \
+    && yum clean all
+
+    {% endif %}
+{% endif %}
+
+COPY start.sh /start.sh
+COPY config-external.sh /opt/kolla/
+
+CMD ["/start.sh"]
diff --git a/docker_templates/designate/designate-central/config-external.sh b/docker_templates/designate/designate-central/config-external.sh
new file mode 120000
index 0000000000..ec5f415dfa
--- /dev/null
+++ b/docker_templates/designate/designate-central/config-external.sh
@@ -0,0 +1 @@
+../../../docker/common/designate/designate-central/config-external.sh
\ No newline at end of file
diff --git a/docker_templates/designate/designate-central/start.sh b/docker_templates/designate/designate-central/start.sh
new file mode 120000
index 0000000000..5198d98872
--- /dev/null
+++ b/docker_templates/designate/designate-central/start.sh
@@ -0,0 +1 @@
+../../../docker/common/designate/designate-central/start.sh
\ No newline at end of file
diff --git a/docker_templates/designate/designate-mdns/Dockerfile.j2 b/docker_templates/designate/designate-mdns/Dockerfile.j2
new file mode 100644
index 0000000000..c93f1d9569
--- /dev/null
+++ b/docker_templates/designate/designate-mdns/Dockerfile.j2
@@ -0,0 +1,16 @@
+FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-designate-base:{{ tag }}
+MAINTAINER Kolla Project (https://launchpad.net.kolla)
+
+{% if install_type == 'binary' %}
+    {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %}
+
+RUN yum install -y openstack-designate-mdns \
+    && yum clean all
+
+    {% endif %}
+{% endif %}
+
+COPY start.sh /start.sh
+COPY config-external.sh /opt/kolla/
+
+CMD ["/start.sh"]
diff --git a/docker_templates/designate/designate-mdns/config-external.sh b/docker_templates/designate/designate-mdns/config-external.sh
new file mode 120000
index 0000000000..c7be897485
--- /dev/null
+++ b/docker_templates/designate/designate-mdns/config-external.sh
@@ -0,0 +1 @@
+../../../docker/common/designate/designate-mdns/config-external.sh
\ No newline at end of file
diff --git a/docker_templates/designate/designate-mdns/start.sh b/docker_templates/designate/designate-mdns/start.sh
new file mode 120000
index 0000000000..26da1f200c
--- /dev/null
+++ b/docker_templates/designate/designate-mdns/start.sh
@@ -0,0 +1 @@
+../../../docker/common/designate/designate-mdns/start.sh
\ No newline at end of file
diff --git a/docker_templates/designate/designate-poolmanager/Dockerfile.j2 b/docker_templates/designate/designate-poolmanager/Dockerfile.j2
new file mode 100644
index 0000000000..5d1dabdda7
--- /dev/null
+++ b/docker_templates/designate/designate-poolmanager/Dockerfile.j2
@@ -0,0 +1,19 @@
+FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-designate-base:{{ tag }}
+MAINTAINER Kolla Project (https://launchpad.net.kolla)
+
+{% if install_type == 'binary' %}
+    {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %}
+
+# The bind9 package here is only to provide the rndc binary.
+RUN yum install -y \
+    openstack-designate-pool-manager \
+    bind \
+    && yum clean all
+
+    {% endif %}
+{% endif %}
+
+COPY start.sh /start.sh
+COPY config-external.sh /opt/kolla/
+
+CMD ["/start.sh"]
diff --git a/docker_templates/designate/designate-poolmanager/config-external.sh b/docker_templates/designate/designate-poolmanager/config-external.sh
new file mode 120000
index 0000000000..29989479e8
--- /dev/null
+++ b/docker_templates/designate/designate-poolmanager/config-external.sh
@@ -0,0 +1 @@
+../../../docker/common/designate/designate-poolmanager/config-external.sh
\ No newline at end of file
diff --git a/docker_templates/designate/designate-poolmanager/start.sh b/docker_templates/designate/designate-poolmanager/start.sh
new file mode 120000
index 0000000000..bd7ab705b4
--- /dev/null
+++ b/docker_templates/designate/designate-poolmanager/start.sh
@@ -0,0 +1 @@
+../../../docker/common/designate/designate-poolmanager/start.sh
\ No newline at end of file
diff --git a/docker_templates/designate/designate-sink/Dockerfile.j2 b/docker_templates/designate/designate-sink/Dockerfile.j2
new file mode 100644
index 0000000000..f74e36bbe8
--- /dev/null
+++ b/docker_templates/designate/designate-sink/Dockerfile.j2
@@ -0,0 +1,18 @@
+FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-designate-base:{{ tag }}
+MAINTAINER Kolla Project (https://launchpad.net.kolla)
+
+{% if install_type == 'binary' %}
+    {% if base_distro in ['centos', 'fedora', 'oraclelinux'] %}
+
+RUN yum install -y \
+    openstack-designate-sink \
+    python-designateclient \
+    && yum clean all
+
+    {% endif %}
+{% endif %}
+
+COPY start.sh /start.sh
+COPY config-external.sh /opt/kolla/
+
+CMD ["/start.sh"]
diff --git a/docker_templates/designate/designate-sink/config-external.sh b/docker_templates/designate/designate-sink/config-external.sh
new file mode 120000
index 0000000000..a3a21f3438
--- /dev/null
+++ b/docker_templates/designate/designate-sink/config-external.sh
@@ -0,0 +1 @@
+../../../docker/common/designate/designate-sink/config-external.sh
\ No newline at end of file
diff --git a/docker_templates/designate/designate-sink/start.sh b/docker_templates/designate/designate-sink/start.sh
new file mode 120000
index 0000000000..64853dd18a
--- /dev/null
+++ b/docker_templates/designate/designate-sink/start.sh
@@ -0,0 +1 @@
+../../../docker/common/designate/designate-sink/start.sh
\ No newline at end of file