原文地址:https://docs.docker.com/compose/networking/

以下介绍Compose网络特性仅适用于Compose-file2格式,在version1不支持。

如不指定项目名称,Docker-Compose默认以当前文件目录名作为应用的项目名(ProjectName)
Docker-Conpose为你的应用创建一个网络,Docker-Compose为每个Service创建一个容器,并加入到这个网络中,被网络中的其它容器访问和发现。此容器能够以容器名称作为hostname标识,被其它容器访问。

注:Docker-compose命令中通过--project-name-p参数来指定项目名称,也可以指定环境变量COMPOSE_PROJECT_NAME

示例说明docker-compose创建资源

docker-compose.yml

version: '2'services:web:build: .ports:- "8000:8000"
  db:image: postgres

myapp目录使用命令docker-compose up,将执行以下几步:
+ 创建一个名为myapp_default的网络
+ 以服务名(web、db)分别创建两个容器,添加到myapp_default网络中
+ 容器以服务名(web、db)作为其hostname相互访问,如web可以postgres://db:5432访问db容器

由于Service与容器对应,以下将Docker-Compose创建的容器简称为Service。

更新容器

使用docker-compose up将停止并移除旧容器,重建新容器。
任何连接到旧容器的(其它容器的)连接将关闭,然后检测条件,根据容器名称查找并重建连接。

Links

默认情况下,Docker-Compose下的Servcie之间是可通过服务名称(容器名称,也即hostname)相互访问的。
links只不过为Service提供了以别名访问其它Service的一种方式。

跨主机网络

当把Compose部分到Swarm集群时,可利用Swarm内置的overlay驱动实现不同主机间容器访问,
无需改变Compose文件或应用程序代码。

如何将Comnpose应用到Swarm集群?

networks关键字指定自定义网络

compose file中顶级networks关键字,可以用来创建更加复杂的网络拓扑,指定自定义网络驱动和选项,
也可以用它来连接外部创建(非Compose创建)的网络。
每个Service可通过service内部的networks关键字来指定它要使用的顶级网络。
给Service指定networks的好处是,实现网络隔离或连接

version: '2'services:proxy:build: ./proxynetworks:- frontapp:build: ./appnetworks:- front- backdb:image: postgresnetworks:- backnetworks:front:# Use a custom driverdriver: custom-driver-1back:# Use a custom driver which takes special optionsdriver: custom-driver-2driver_opts:foo: "1"bar: "2"
Networks can be c

配置默认网络

version: '2'services:web:build: .ports:- "8000:8000"db:image: postgresnetworks:default:# Use a custom driverdriver: custom-driver-1

使用已存在的网络

networks:default:external:name: my-pre-existing-network

Docker Compose的网络设置相关推荐

  1. .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行

    本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...

  2. docker三种网络模式

    1.docker默认的三种网络模式: bridge:桥接模式 host:主机模式 none:无网络模式 查看网络模式: docker network ls 2.桥接模式 简介:桥接模式是docker ...

  3. Docker Compose搭建consul群集环境(了解Docker Compose及常用命令,Docker四种网络,Doker指定端口)

    文章目录 Docker Compose搭建consul群集环境 认识Docker Compose IConsul Docker Compose容器编排 Dasker Compose配置常用字段 Bos ...

  4. Docker 学习笔记 - 进阶四 Docker网络和 Docker compose

    Docker 学习笔记 - 进阶四 Docker网络和 Docker compose 4. docker 网络 4.1 docker network是什么 4.1.1 docker不启动,默认网络情况 ...

  5. docker内程序如何读取dockerfile和compose.yml中设置的环境变量

    docker内程序如何读取dockerfile和compose.yml中设置的环境变量 背景 compose文件中配置了服务A和服务B,其中B服务调用了A服务的接口,那么B的实现代码中该如何调用A的服 ...

  6. Docker Networking Docker 网络设置

    在这篇博文里我们会讨论 在Docker中使用Elasticsearch 时的网络配置. 注:这篇博文会用到Docker Hub中的Elasticsearch 镜像.该镜像的开发和生产与Elastic无 ...

  7. docker compose 设置 ip地址

    docker compose 设置 ip地址 ********************* 相关操作 docker-compose.yml version: "3.8" servic ...

  8. docker网络设置(网桥)

    文章目录 一.docker网络模式 二.容器网桥bridge创建过程 三.下载docker镜像(以centos为例),创建centos容器,查看运行容器的IP 四.docker命令创建用户定义的网桥网 ...

  9. 设置docker开机自启动 docker compose设置容器自启动

    Docker启动命令 systemctl start docker Docker开机自启动 systemctl enable docker Docker设置容器为自启动 --restart=alway ...

最新文章

  1. viso 画背景框_3分钟漫画教程 | Q版漫画少女线稿,画完暖暖的
  2. tomcat线程释放时间_聊下并发和Tomcat线程数(错误更正)
  3. 把自己的思想记录下来
  4. android添加常驻图标到状态栏
  5. python获得用户输入的一个字符串(长度3)_python3 字符串属性(一)
  6. Android studio 清除缓存数据的步骤
  7. 【Kafka】【未解决】kafka反序列化数据报错jackson2 JsonParseException: Invalid UTF-8 middle byte 0xc0
  8. Mobile如何通过重定向来定制主页
  9. 认识JQuery的三天--看视频得到的一些小知识点
  10. Monitor HDU6514 二维差分入门学习
  11. 数电(四)—使用译码器74138和门电路实现/写逻辑函数,使用8选1数据选择器74151实现实现L=∑m格式的3/多输入逻辑函数
  12. 自媒体原创度检测工具有哪些?这几个可以免费用
  13. Lakes.AERMOD.View.v8.9.0 1CD大气扩散模型软件包
  14. USB转四串口芯片CH9344
  15. html正方形符号,html 特殊符号标记
  16. jupyter notebook 之 pandas
  17. iOS 【使用自定义字体-苹方字体】
  18. 床的标准尺寸和规格都有哪种
  19. 【Ansible】 Ansible 模块 setup 与 stat 模块用法
  20. Codeforces 1247D. Power Products (logn质因数分解)

热门文章

  1. 计算机考试excel教程计算函数,职称计算机考试Excel教程:显示公式的方法
  2. 2020-2023年周末、法定节假日、工作日标签
  3. 大数据算法系列12:图论算法
  4. 解决Betwin客户机经常无法正常登录带来的困扰
  5. c语言算开方程序,详细解析C语言中的开方实现
  6. mysql字段排序语句_数据库字段排序的SQL语句
  7. 判断一个字符串是否为空(null)或者是空字符串(“”)的方法总结
  8. wifi模块连接阿里物联网平台AT+MQTTCONN=0,““,1883报错
  9. 一眼看穿flatMap和map的区别
  10. Mysql表批量添加字段