docker网络,docker-compose network问题
docker网络,docker-compose network
单机桥接网络,bridge(Linux)、nat(Windows)
特点:
1.只能在单个docker主机上运行,并且只能与所在docker主机上的容器进行连接。
2.桥接意味着这是802.1.d桥接的一种实现(二层交换机)
Linux主机上:
docker网络由bridge驱动创建,而bridge底层是基于Linux内核中久经考验达15年的Linux bridge技术。
默认的“bridge”网络被映射到内核中为“docker0”的Linux网桥。
本地系统中存在的网桥如下图(需要安装bridge-utils):
docker0对应docker中默认网桥bridge;
网桥未开启STP,并且有容器内部的网桥借口设备接入对应网桥(网桥对应的interfaces下有关联容器网络借口网络)

调整思绪,未完待续。。。。。。
docker-compose 网络
networks:
my_network: #网络名称
driver: bridge #桥接模式
attachable:true #允许独立的网络连接到该网络上
persist: #网络名称
external: #使用已存在的网络
name: bridge2 #已创建的网络名
docker-compose network名称定义
docker-compose启动的网络名称:
1、没有自定义网络名
$ cat docker-compose.yaml
version: '2'
services:
zookeeper1:
image: zookeeper
container_name: zookeeper1
environment:
- ZOO_MY_ID=1
- ZOO_SERVERS=server.1=zookeeper1:2888:3888实际使用的网络是:<当前路径名_default>,如果<当前路径名>太长,会截取前缀部分。
例如当然目录名为testdocker,那么最终生产的网络名为:testdocker_default
$ docker network ls abf87f64de25 testdocker_default bridge local
2、定义后缀
$ cat docker-compose.yaml
version: '2'
networks:
byfn:
services:
zookeeper1:
image: zookeeper
container_name: zookeeper1
environment:
- ZOO_MY_ID=1
- ZOO_SERVERS=server.1=zookeeper1:2888:3888
networks:
- byfn定义网络名为byfn,那么最终生产的网络名为:<当前路径名_byfn>。
相对于之前没有定义的时候,把default替换成了定义的网络名,同样还是使用路径名作为前缀。
$ docker network ls abf87f64de25 testdocker_byfn bridge local
3、定义前缀
当然使用路径名作为网络名是很不友好的,docker-compose使用环境变量来取代路径名。
设置环境变量:COMPOSE_PROJECT_NAME
$ cat .env COMPOSE_PROJECT_NAME=aaa
这时网络名如下:
$ docker network ls 967ef0d41dd6 aaa_byfn bridge local
所以,docker-compose的网络名的规则是:<COMPOSE_PROJECT_NAME>_<NETWORKS>
1、如果NETWORKS没有定义,那么就是default。
2、如果COMPOSE_PROJECT_NAME,那么就是当前路径名(取前缀)。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
docker-compose 配置spring环境的方法步骤
这篇文章主要介绍了docker-compose 配置spring环境的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-11-11
Mac上将brew安装的MySql改用Docker执行操作过程
本文分步骤给大家介绍Mac上将brew安装的MySql改用Docker执行操作过程的知识,本文给大家介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧2016-11-11
使用Docker compose启动自定义jar包的步骤详解
这篇文章主要介绍了使用Docker compose启动自定义jar包的步骤,首先我们需要编写一个docker-compose.yml文件来定义我们的服务传到我们的云服务器上,本文给大家分享示例代码,感兴趣的朋友一起看看吧2024-03-03
Prometheus 整合 AlertManager的教程详解
Alertmanager 主要用于接收 Prometheus 发送的告警信息,它很容易做到告警信息的去重,降噪,分组,策略路由,是一款前卫的告警通知系统。这篇文章主要介绍了Prometheus 整合 AlertManager的教程 ,需要的朋友可以参考下2019-07-07


最新评论