这里是对docker compose 网络配置的一些说明,详细的文档参考:

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

1 default network

如果不显式指定,Compose会为每一个app设置一个default网络。每个service的container会加入这个default网络并且能够被这个网络上的其他container访问到,hostname就是container的name,通过这个hostname可以发现container。

注意:

App的default网络的名字基于yaml文件所在的目录名字命名。可以修改此name使用--project-name flag或者COMPOSE_PROJECT_NAME 环境变量。

例子:

假设yaml文件所在的目录名为myapp,内容为:

version: "3.9"
services:web:build: .ports:- "8000:8000"db:image: postgresports:- "8001:5432"

当运行docker-compose up命令时,会做一下事情:

  1. 创建一个名为myapp_default 的network
  2. 创建一个container使用web的配置参数,它加入myapp_default network并且hostname为web
  3. 创建一个container使用db的配置参数,它加入myapp_default network并且hostname为db

每一个container可以使用hostname web和db访问者两个容器。例如,web中的application可以使用url postgres://db:5432 访问postgre 数据库。

2区分HOST_PORT 和CONTAINER_PORT

上面的例子中,dbHOST_PORT8001 CONTAINER_PORT5432. 同一个networkservice之间使用CONTAINER_PORT进行通信, 如果有HOST_PORT, 那么docker之外可以使用HOST_PORT访问服务。

例如,web container内的进程可以使用postgres://db:5432访问db服务。 宿主机上的程序可以使用postgres://{DOCKER_IP}:8001 访问db服务。

3更新容器

如果更新了一个docker service的配置,然后运行docker-compose up 更新它, 那么老的container会被删除,新的container会使用一个不同ip加入network但是host name相同。正在运行的container可以通过名字查找并连接到新的ip,老的ip不再工作了。

如果有container仍然存在到老container的连接,这些连接会被关闭。 Container负责检测这种状况并重新连接到新container。

4自定义network

除了使用default 网络,也可以使用networks关键字自定义自己的网络。这样可以创建更复杂的拓扑结构,也可以连接到外部的网络。例如下面的例子,service proxy和db是相互隔离的,因为他们分别加入不同的网络,app可以与他们两个都建立通信。

version: "3"
services:proxy:build: ./proxynetworks:- frontendapp:build: ./appnetworks:- frontend- backenddb:image: postgresnetworks:- backendnetworks:frontend:external: true
driver: custom-driver-1
name: frontendbackend:driver: custom-driver-2name: backend

5 docker network常用命令

docker network命令是network相关的操作

主要的命令有:

$ docker network --help

Usage: docker network COMMAND

Manage networks

Commands:

connect     连接一个container到一个network

create      创建一个network

disconnect  从一个network断开container

inspect     显示network的详细信息

ls          列出所有的network

prune      删除不用的networks

rm         删除一个或多个network

Docker Compose network配置相关推荐

  1. Docker 之Docker Compose 介绍

    文章目录 使用Docker Compose之前的项目搭建 构建一个Python的应用的image 创建composetest文件夹 在 /tmp/composetest文件夹下 创建app.py文件 ...

  2. docker-compose下载慢_编写Docker Compose时要注意的五大常见错误

    在构建容器化的应用时,开发人员往往需要某种方法来引导启动目标容器,以对其进行代码级别的测试.尽管业界有许多方法可以实现该目的,但Docker Compose是目前最受欢迎的一种方法.它能够让如下两个方 ...

  3. docker compose容器域名配置

    docker容器的配置本来是交给测试来做的,我对此是一无所知的,但是有一次rocketmq的域名配置出了问题,而测试又只是依样画葫芦,碰到变化的情况就抓瞎了,搞了一天都没搞出来,所以我只好花费时间,解 ...

  4. Docker Network 配置,自定义bridge网络

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  5. Docker Compose配置springboot微服务项目

    [Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...

  6. CentOS7安装Docker和配置Docker Compose

    文章目录 一.前提条件和注意事项 二.删除旧版本的 Docker(可选) 三.安装 Docker 第1步:安装必要的一些系统工具 第2步:添加软件源信息 第3步:编辑文件 第4步:将软件包信息提前在本 ...

  7. 容器单机编排工具 Docker Compose,swap 限制,配置默认的CFS调度程序,Stress-ng 压力测试工具,docker官网镜像上传,及阿里云镜像上传,Docker 的资源限制

    目录 Docker Compose介绍   有版本问题 一键生成 docker-compose.yml docker官网镜像上传,及阿里云镜像上传 Docker 之分布式仓库 Harbor Docke ...

  8. Docker折腾记: (3)Docker Compose构建Gitlab,从配置(https,邮箱验证)到基本可用

    前言 gitlab 11.1内置了CI/CD,这个特性从gitlab 8+就开始有了,不过配置比较琐碎 经过几个大版本的迭代,现在已经简化了使用方式,也修复了一些坑,这个特性大大吸引了我; gitla ...

  9. 安装Docker.v19和配置Docker Compose编排工具

    博文目录 一.Compose简介 二.安装Docker 1.安装19.03.9版本Docker 2.配置镜像加速 三.安装使用Docker Compose 1.Github下载Docker Compo ...

  10. Docker(八):Docker Compose

    Docker Compose Compose 简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具.通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务.然 ...

最新文章

  1. android 九宫格绘制,Android draw9patch.bat 九宫格绘制工具使用
  2. 7个杀手级的开源监测工具
  3. Swift版iOS游戏框架Sprite Kit基础教程下册
  4. 【原创】一种维护型项目升级打包的解决方案
  5. Axis,axis2,Xfire以及cxf对比 (转)
  6. 【模型解读】pooling去哪儿了?
  7. VB案例:DAO使用示例1
  8. 如何理解typedef void
  9. 为什么现在选择单身的男生和女生越来越多
  10. 查询成绩最好的前两名_SQL查询整理
  11. c语言小学生四则运算出题_求助 设计一个小学生自助四则运算练习软件
  12. ASP.NET MVC资源文件多语言实现方式
  13. Heckman 两阶段法及与工具变量法的区别
  14. Frank Pfenning
  15. 计算机制作游戏,怎么制作游戏?
  16. iOS-SEL的用法和讲解
  17. Sereja and Swaps
  18. php实战 AES对称加密 第三章
  19. Camera Boke背景虚化谷歌官方解释
  20. 2021-11-01 - 互联网常用英文缩写:DAU、ROI、MCN......

热门文章

  1. 接口测试是什么接口测试文档规范
  2. 多一份感动,多一份行动[动物园的猪 发表于 2004-11-15]
  3. 华为网络设备-生成树协议配置
  4. 浅谈机器学习中的非线性
  5. 数码照片像素与可冲印照片尺寸对照表
  6. quartus II DDS实验
  7. 广州大学机器学习与数据挖掘实验一
  8. WordPress防止自动压缩jpg图片
  9. 自己退出微信小程序开发者权限
  10. spring-config.xml的annotation-driven详解