Docker Community Forums

Share and learn in the Docker community.

Docker-compose un-usable on Mac Beta


(Alexellis2) #1

Same as: Docker compose is extremely slow

Unfortunately this topic was closed, so I could not post a reply.

It is suggested that changing primary DNS from router to 8.8.8.8 (Google) resolves the issue, but this is not an appropriate action for some users who run a local DNS cache or service for LAN-connected computers.

Please can we continue the discussion?

Docker 1.11.0-beta9 is currently the newest version available.


Mac Beta Crashed during docker-compose up
(Justin Cormack) #2

Can you provide a compose file we can test that shows this behaviour? Otherwise we cannot usefully investigate what is slow.


(Alexellis2) #3

Anything written in compose is acting this way. I can boot it up later and just send you my logs…?

If I use docker-machine and the old xhyve driver then it’s fine.


(Ruilapa) #4

In my case using 8.8.8.8 didn’t solve.

When I disconnected WiFi it would fly.

I solved it by changing the DNS Search Domains from a “local domain” to an FQDN.


(Arthurk) #5

I installed docker for mac today and also noticed that compose is very slow when connected to the internet. I ran the following tests with OSX 10.11.4 and compose 1.7.0. The compose file is the following:

version: '2'
services:
  mysql:
    image: mysql:5.5
    ports:
      - "3306:3306"

The first test I ran was with docker-machine 0.7.0 (with docker 1.11.1):

~/compose_test ❯❯❯ time docker-compose up -d
Creating network "composetest_default" with the default driver
Creating composetest_mysql_1
docker-compose up -d  0.23s user 0.05s system 44% cpu 0.627 total

Then with docker for mac beta10:

~/compose_test ❯❯❯ time docker-compose up -d
Creating network "composetest_default" with the default driver
Creating composetest_mysql_1
docker-compose up -d  0.49s user 0.12s system 0% cpu 1:12.34 total

Based on the info from the thread that OP mentioned above, I turned off my internet connection and tried again:

~/compose_test ❯❯❯ time docker-compose up -d                                                                                                                            ⏎
Creating network "composetest_default" with the default driver
Creating composetest_mysql_1
docker-compose up -d  0.22s user 0.05s system 36% cpu 0.766 total

Something seems to be slowing down docker for mac when there’s an internet connection.


Docker-compose very slow
(Sgeisbacher) #6

the problem seems to be that compose tries to resolve localunixsocket.local and some dns-servers does not reply and so compose is running into several timeouts, i think. googles 8.8.8.8 dns-server does respond. see my 2 screenshots from tcpdump -A -s0 -nni en0 port 53.
here with company’s dns

here with googles dns

for me it’s not an option to switch to googles dns, because i need to access company-servers and our companys internal docker-registry …


(Sgeisbacher) #7

here i have a dirty workaround:
start a dnsmasq-container that resolves that bad dns to 127.0.0.1 and forward all other requests to companies dns.

docker run -p 127.0.0.1:53:53/tcp -p 127.0.0.1:53:53/udp --add-host=localunixsocket.<your-search-domain>:127.0.0.1 -d --dns=<company-dns-server-ip> --cap-add=NET_ADMIN andyshinn/dnsmasq

after that you have to change your system dns to 127.0.0.1 in your mac-system-network-settings.


(Dan Everton) #8

A less dirty work around is to add

127.0.0.1 localunixsocket localunixsocket.local

to your /etc/hosts file. Using docker-compose is much, much faster now.


(Moloch) #9

I have the same issues, modifying /etc/hosts does not seem to resolve the issue for me. Still looking into other solutions. How has this not been fixed yet, this seems like a P1 as it makes all of Docker unusable for development and is going to put a lot people off of using Docker for Mac at all.


(Technicalflaw) #10

Thank you! This problem has been bugging me all day. In my case I’m running dnsmasq, but I also have my search domain set to local. Once I removed this (in the Mac Network Preferences panel) all was well.