Docker学习笔记:docker compose 中难缠的网络问题
越来越多的开发者被带到Docker的使用中,至少我的所有开发环境都是Docker的,Github直达。本人习惯用 Docker compose 来管理,在各种各样的容器之间,网络问题时不时的就蹦出来,现我就过程中遇到的问题做出自己的总结。
同一个 docker-compose 文件中的容器如何互联?
在整理开发环境时,我习惯性的把php和nginx放在一起,方便启动时能够同时启动。所以会把
nginx 和 php 放在同一个 docker-compose 中。那么如何保证 nginx 能转发到
php 呢? ##### links 1
2
3
4
5
6
7
8version: "3"
services:
nginx:
image: nginx:1.15
links:
- "php7cache"
php7cache:
build: .
不同 docker-compose 文件中的容器如何互联?
external_links
external_links是连接外部网络的方式,这种方案来源于网上,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ...
# other
...
php7cache:
build: .
networks:
- default
- app_net
external_links:
- redis
- mysql
networks:
app_net: # 定义了一个 app_net 的网络
external: true # 并标识为外部网络1
2
3
4
5
6
7
8
9
10version: "3"
services:
flume:
image: probablyfine/flume
networks:
- default
- kafka_default
networks:
kafka_default:
external: true1
2
3
4
5
6
7
8
9version: "3"
services:
flume_events:
image: probablyfine/flume
container_name: flume_events
environment:
FLUME_AGENT_NAME: agent
extra_hosts:
- "test-1:10.3.8.49"