Docker非本地数据库访问速度慢

Jus*_*yle 7 php mysql docker

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

当我们的容器在容器引擎上运行时,数据库访问速度快如闪电,但在本地计算机上运行时却非常慢。一些页面加载在生产环境中通常需要 1.9 秒,但在我们的本地系统上却达到了 25.0 秒甚至更高。

我认为邻近可能是一个问题,所以我尝试在本地计算机上启动 MySQL Docker 容器,并将本地 Dockerized Web 服务器连接到该容器,而且速度很快。生产中 1.9 秒的页面加载现在在我的本地徘徊在 1.8 秒左右。

我决定在我们办公室的一台服务器上运行一个 MySQL Docker 实例,但当我这样做时,这些页面加载突然飙升至 25.0 秒,然后再次上升。

当 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
Run Code Online (Sandbox Code Playgroud)

编辑:在尝试缩小问题范围时,我在 Macbook 上设置了 MySQL Docker 容器,然后在另一台机器上设置了 Dockerized Web 服务器(运行 Ubuntu 14.04)。数据库访问速度很快,但是当我反转它(Ubuntu 机器上的 MySQL,Macbook 上的 Web 服务器)时,它又慢得可怕。奇怪的。我还尝试将 Macbook 上的 Docker 更新到 1.12,这将 VirtualBox 从等式中删除,但这也没有解决问题。也许 Docker 的网络适配器出了问题?我很困惑。

Gal*_*one 0

您使用的是哪个版本的 Docker for Mac?因为当时我遇到了类似的问题,现在我发现了 Docker for MAC 的一个已知问题可能与您相关。

此问题已映射到以下问题。

他们还提供了一个解决方法,但现在更新 Docker 版本应该就足够了。