Docker Compose的网络设置
原文地址: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的网络设置相关推荐
- .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行
本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...
- docker三种网络模式
1.docker默认的三种网络模式: bridge:桥接模式 host:主机模式 none:无网络模式 查看网络模式: docker network ls 2.桥接模式 简介:桥接模式是docker ...
- Docker Compose搭建consul群集环境(了解Docker Compose及常用命令,Docker四种网络,Doker指定端口)
文章目录 Docker Compose搭建consul群集环境 认识Docker Compose IConsul Docker Compose容器编排 Dasker Compose配置常用字段 Bos ...
- Docker 学习笔记 - 进阶四 Docker网络和 Docker compose
Docker 学习笔记 - 进阶四 Docker网络和 Docker compose 4. docker 网络 4.1 docker network是什么 4.1.1 docker不启动,默认网络情况 ...
- docker内程序如何读取dockerfile和compose.yml中设置的环境变量
docker内程序如何读取dockerfile和compose.yml中设置的环境变量 背景 compose文件中配置了服务A和服务B,其中B服务调用了A服务的接口,那么B的实现代码中该如何调用A的服 ...
- Docker Networking Docker 网络设置
在这篇博文里我们会讨论 在Docker中使用Elasticsearch 时的网络配置. 注:这篇博文会用到Docker Hub中的Elasticsearch 镜像.该镜像的开发和生产与Elastic无 ...
- docker compose 设置 ip地址
docker compose 设置 ip地址 ********************* 相关操作 docker-compose.yml version: "3.8" servic ...
- docker网络设置(网桥)
文章目录 一.docker网络模式 二.容器网桥bridge创建过程 三.下载docker镜像(以centos为例),创建centos容器,查看运行容器的IP 四.docker命令创建用户定义的网桥网 ...
- 设置docker开机自启动 docker compose设置容器自启动
Docker启动命令 systemctl start docker Docker开机自启动 systemctl enable docker Docker设置容器为自启动 --restart=alway ...
最新文章
- viso 画背景框_3分钟漫画教程 | Q版漫画少女线稿,画完暖暖的
- tomcat线程释放时间_聊下并发和Tomcat线程数(错误更正)
- 把自己的思想记录下来
- android添加常驻图标到状态栏
- python获得用户输入的一个字符串(长度3)_python3 字符串属性(一)
- Android studio 清除缓存数据的步骤
- 【Kafka】【未解决】kafka反序列化数据报错jackson2 JsonParseException: Invalid UTF-8 middle byte 0xc0
- Mobile如何通过重定向来定制主页
- 认识JQuery的三天--看视频得到的一些小知识点
- Monitor HDU6514 二维差分入门学习
- 数电(四)—使用译码器74138和门电路实现/写逻辑函数,使用8选1数据选择器74151实现实现L=∑m格式的3/多输入逻辑函数
- 自媒体原创度检测工具有哪些?这几个可以免费用
- Lakes.AERMOD.View.v8.9.0 1CD大气扩散模型软件包
- USB转四串口芯片CH9344
- html正方形符号,html 特殊符号标记
- jupyter notebook 之 pandas
- iOS 【使用自定义字体-苹方字体】
- 床的标准尺寸和规格都有哪种
- 【Ansible】 Ansible 模块 setup 与 stat 模块用法
- Codeforces 1247D. Power Products (logn质因数分解)
热门文章
- 计算机考试excel教程计算函数,职称计算机考试Excel教程:显示公式的方法
- 2020-2023年周末、法定节假日、工作日标签
- 大数据算法系列12:图论算法
- 解决Betwin客户机经常无法正常登录带来的困扰
- c语言算开方程序,详细解析C语言中的开方实现
- mysql字段排序语句_数据库字段排序的SQL语句
- 判断一个字符串是否为空(null)或者是空字符串(“”)的方法总结
- wifi模块连接阿里物联网平台AT+MQTTCONN=0,““,1883报错
- 一眼看穿flatMap和map的区别
- Mysql表批量添加字段