Neil Developer

Docker Compose 的网络模式

2019-05-25

在 docker-compose 的原始版本中, 创建出来的服务都是全局的, 也就是说同一台机器上的所有 docker-compose 产生的container是可以互相访问的, 只要通过ip 就可以. 如果通过 link 也可以通过 name 访问.

在 docker-compose 的 v2v3 版本中, 每一个 docker-compose 所创建的所有服务(container) 共享同一个网络. 同一个网络内的服务之间可以通过 name 互相访问. 但是不同docker-compose 产生的服务之间默认是不能访问的.

要想解决这个问题, 官方推荐的做法是让需要跨网络访问能力的conainer 加入到多个网络中. 参考这有说明:

https://docs.docker.com/compose/networking/

如果在一些简单的情况下, 我们不需要这么复杂, 只需要让 docker-compose 不创建独立网络, 而像以前一样使用系统的默认网络就好. 只需要加入: network_mode: bridge

像这样:

version: "2.1"

services:
  app:
    image: ubuntu:latest
    network_mode: bridge

参考: https://stackoverflow.com/questions/43754095/how-to-join-the-default-bridge-network-with-docker-compose-v2


Similar Posts

下一篇 安装php Composer

Comments