diff --git a/docker/files/docker-compose.yml b/docker/files/docker-compose.yml
index f1685f0..a0c47c6 100644
--- a/docker/files/docker-compose.yml
+++ b/docker/files/docker-compose.yml
@@ -5,40 +5,51 @@
   {{ compose.config|yaml(False)|indent(2) }}
 {%- endif %}
 
-services:
-  {%- for name, srv in service.iteritems() %}
-  {%- set env_file_set = False %}
-  {{ name }}:
-    {%- if 'env_file' in srv.keys() %}{%- set env_file_set = True %}{%- endif %}
-    {{ srv|yaml(False)|indent(4) }}
-    {%- if not env_file_set and compose.environment is defined %}
-    env_file: .env
+{%- set default_extra_hosts_list = [] %}
+{%- for name, host in pillar.get('linux', {}).get('network', {}).get('host', {}).iteritems() %}
+  {%- for hostname in host.names %}
+    {%- if hostname != "localhost" %}
+      {%- do default_extra_hosts_list.append(hostname + ":" + host.address) %}
     {%- endif %}
   {%- endfor %}
+{%- endfor %}
+
+services:
+{%- for name, srv in service.iteritems() %}
+  {%- set service_extra_hosts_list = srv.get('extra_hosts', []) %}
+  {%- do srv.update({'extra_hosts': (default_extra_hosts_list + service_extra_hosts_list)|unique|sort}) %}
+  {{ name }}:
+    {{ srv|yaml(False)|indent(4) }}
+  {%- set env_file_set = False %}
+  {%- if 'env_file' in srv.keys() %}{%- set env_file_set = True %}{%- endif %}
+  {%- if not env_file_set and compose.environment is defined %}
+    env_file: .env
+  {%- endif %}
+{%- endfor %}
 
 {%- if volume|default({}) %}
 volumes:
-{%- for key, value in volume.iteritems() %}
-  {%- if value is mapping %}
+  {%- for key, value in volume.iteritems() %}
+    {%- if value is mapping %}
   {{ key }}:
     {{ value|yaml(False)|indent(4) }}
-  {%- else %}
+    {%- else %}
   {{ key }}:
-  {%- endif %}
-{%- endfor %}
+    {%- endif %}
+  {%- endfor %}
 {%- endif %}
 
 
 {%- if network|default({}) %}
 networks:
-{%- for key, value in network.iteritems() %}
-  {%- if value is mapping %}
+  {%- for key, value in network.iteritems() %}
+    {%- if value is mapping %}
   {{ key }}:
     {{ value|yaml(False)|indent(4) }}
-  {%- else %}
+    {%- else %}
   {{ key }}:
-  {%- endif %}
-{%- endfor %}
+    {%- endif %}
+  {%- endfor %}
 {%- endif %}
 
 {#-
