Docker缓慢的非本地数据库访问

我们在本地开发环境中使用Docker,并将其部署到Google Cloud Container Engine进行生产。 我们的生产SQL服务器也在Google Cloud上。

当我们的容器在Container Engine上运行时,DB访问速度很快,但是在我们的本地机器上运行时速度非常慢。 一些通常在生产中需要1.9秒的页面加载速度已经提高到了25.0s,并且在我们当地人身上。

我认为邻近可能是一个问题,所以我尝试在本地机器上启动一个MySQL Docker容器,然后连接本地的Dockerized Web服务器,而且速度很快。 1.9秒的页面加载量在当地徘徊在1.8秒左右。

我决定在我们办公室的一台服务器上运行一个MySQL Docker实例,但是当我将这些页面加载速度提高到25.0s并再次提高时。

Docker需要连接到不在本地机器上的任何资源的时候,似乎有什么东西正在放慢连接。

我的docker info输出,如果它有帮助的话:

 Containers: 4 Running: 2 Paused: 0 Stopped: 2 Images: 203 Server Version: 1.12.2 Storage Driver: aufs Root Dir: /mnt/sda1/var/lib/docker/aufs Backing Filesystem: extfs Dirs: 209 Dirperm1 Supported: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: null bridge host overlay Kernel Version: 4.4.24-boot2docker Operating System: Boot2Docker 1.12.2 (TCL 7.2); HEAD : 9d8e41b - Tue Oct 11 23:40:08 UTC 2016 OSType: linux Architecture: x86_64 CPUs: 4 Total Memory: 3.858 GiB Name: dev ID: AYO6:TL7P:XSST:VI5T:HKCC:QTOZ:HP3X:NKYQ:YCWT:THV2:AQM2:5XER Docker Root Dir: /mnt/sda1/var/lib/docker Debug mode (client): false Debug mode (server): true File Descriptors: 32 Goroutines: 58 System Time: 2016-10-26T22:46:19.218543394Z EventsListeners: 1 Registry: https://index.docker.io/v1/ Labels: provider=virtualbox 

编辑:虽然试图缩小这个问题,我在我的Macbook上设置了MySQL Docker容器,然后在另一台机器(运行Ubuntu 14.04)上设置我们的Dockerized Web服务器。 数据库访问速度很快,但是当我反转这一点(Ubuntu机器上的MySQL,Macbook上的Web服务器)时,它又一次变得非常慢。 奇怪。 我也尝试更新我的Macbook上的Docker到1.12,从等式中删除了VirtualBox,这也没有解决这个问题。 它会SEEM,有一些Docker的networking适配器可能吗? 我很难过

并不是我所希望的解决scheme,但为了防止任何人遇到这种情况,他们正在把头撞到墙上。

我们的解决scheme是在本地机器上运行MySQL的本地副本作为Docker服务,并将数据库克隆到其中。 不是一个理想的解决scheme,但它消除了每一个networking请求10-30 +秒的响应时间。

我还发现,在Linux VM中运行Docker容器,并使用主机专用适配器也有很大的不同(不幸的是,Docker for MacOS不支持主机专用适配器)。