Docker Compose network配置
这里是对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命令时,会做一下事情:
- 创建一个名为myapp_default 的network
- 创建一个container使用web的配置参数,它加入myapp_default network并且hostname为web
- 创建一个container使用db的配置参数,它加入myapp_default network并且hostname为db
每一个container可以使用hostname web和db访问者两个容器。例如,web中的application可以使用url postgres://db:5432 访问postgre 数据库。
2区分HOST_PORT
和CONTAINER_PORT
上面的例子中,
db
的
HOST_PORT
是
8001
,
CONTAINER_PORT
是
5432.
同一个
network
的
service
之间使用
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配置相关推荐
- Docker 之Docker Compose 介绍
文章目录 使用Docker Compose之前的项目搭建 构建一个Python的应用的image 创建composetest文件夹 在 /tmp/composetest文件夹下 创建app.py文件 ...
- docker-compose下载慢_编写Docker Compose时要注意的五大常见错误
在构建容器化的应用时,开发人员往往需要某种方法来引导启动目标容器,以对其进行代码级别的测试.尽管业界有许多方法可以实现该目的,但Docker Compose是目前最受欢迎的一种方法.它能够让如下两个方 ...
- docker compose容器域名配置
docker容器的配置本来是交给测试来做的,我对此是一无所知的,但是有一次rocketmq的域名配置出了问题,而测试又只是依样画葫芦,碰到变化的情况就抓瞎了,搞了一天都没搞出来,所以我只好花费时间,解 ...
- 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 ...
- Docker Compose配置springboot微服务项目
[Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...
- CentOS7安装Docker和配置Docker Compose
文章目录 一.前提条件和注意事项 二.删除旧版本的 Docker(可选) 三.安装 Docker 第1步:安装必要的一些系统工具 第2步:添加软件源信息 第3步:编辑文件 第4步:将软件包信息提前在本 ...
- 容器单机编排工具 Docker Compose,swap 限制,配置默认的CFS调度程序,Stress-ng 压力测试工具,docker官网镜像上传,及阿里云镜像上传,Docker 的资源限制
目录 Docker Compose介绍 有版本问题 一键生成 docker-compose.yml docker官网镜像上传,及阿里云镜像上传 Docker 之分布式仓库 Harbor Docke ...
- Docker折腾记: (3)Docker Compose构建Gitlab,从配置(https,邮箱验证)到基本可用
前言 gitlab 11.1内置了CI/CD,这个特性从gitlab 8+就开始有了,不过配置比较琐碎 经过几个大版本的迭代,现在已经简化了使用方式,也修复了一些坑,这个特性大大吸引了我; gitla ...
- 安装Docker.v19和配置Docker Compose编排工具
博文目录 一.Compose简介 二.安装Docker 1.安装19.03.9版本Docker 2.配置镜像加速 三.安装使用Docker Compose 1.Github下载Docker Compo ...
- Docker(八):Docker Compose
Docker Compose Compose 简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具.通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务.然 ...
最新文章
- android 九宫格绘制,Android draw9patch.bat 九宫格绘制工具使用
- 7个杀手级的开源监测工具
- Swift版iOS游戏框架Sprite Kit基础教程下册
- 【原创】一种维护型项目升级打包的解决方案
- Axis,axis2,Xfire以及cxf对比 (转)
- 【模型解读】pooling去哪儿了?
- VB案例:DAO使用示例1
- 如何理解typedef void
- 为什么现在选择单身的男生和女生越来越多
- 查询成绩最好的前两名_SQL查询整理
- c语言小学生四则运算出题_求助 设计一个小学生自助四则运算练习软件
- ASP.NET MVC资源文件多语言实现方式
- Heckman 两阶段法及与工具变量法的区别
- Frank Pfenning
- 计算机制作游戏,怎么制作游戏?
- iOS-SEL的用法和讲解
- Sereja and Swaps
- php实战 AES对称加密 第三章
- Camera Boke背景虚化谷歌官方解释
- 2021-11-01 - 互联网常用英文缩写:DAU、ROI、MCN......