第8章 Docker Compose 相关问题

8.1 你那个LNMP例子中的docker-compose.yml中有好多networks,都是什么意思啊?

我写的 LNMP 多容器互通的例子:https://coding.net/u/twang2218/p/docker-lnmp/git
前面 services 下的每个服务下面的 networks,是说这个服务要接到哪个网络上。
而最后的那个总的networks下面的,是这几个网络的定义。
也就是说,nginx 接到了名为 frontend 的前端网络;mysql 接到了名为 backend 的后端网络;而作为中间的 php 既需要和 nginx 通讯,又需要和 mysql 通讯,所以同时连接了 frontend 和 backend 网络。由于 nginx 和 mysql 不处于同一网络,所以二者无法通讯,起到了隔离的作用。
关于 Docker 自定义网络,你可以看一下官方文档的介绍:
https://docs.docker.com/engine/userguide/networking/dockernetworks/#/user-defined-networks
关于在 Docker Compose 中使用自定义网络的部分,可以看官方这部分文档:
https://docs.docker.com/compose/networking/

8.2 使用Compose的时候碰到“AnHTTPrequesttooktoolongtocomplete”错误,怎么办?

Compose 的请求超时时限是可以配置的:

export COMPOSE_HTTP_TIMEOUT=120

不过,这不是问题的解决办法,因为一般情况下不应该超时,超时的原因是因为所访问的 Docker Engine 过于繁忙,而无法响应 Compose 的请求。应该检查具体 Docker Engine 出了什么问题,是不是还在用着 CentOS 默认的 device mapper 的 loop 设备,等等。

原文地址:https://www.cnblogs.com/syavingcs/p/8400481.html