简介

在接触docker的第一天起,大家应该就知道:docker容器使用沙箱机制,相互之间没有接口,一般情况下内部访问通过IP+端口。本地容器默认分配的IP极易发生变化,所以靠IP+端口访问的方式缺失稳定性。单机模式暂且不讲,集群模式下容器间的通信仅通过内部IP是无法访问的。docker给出解决方案是link和network,本文介绍一下network(link操作会复杂化容器之间的关系,本文既不推荐,也不予详解)。

network

network可以称之为网桥,如果给不同容器指定了相同网桥,那么它们之间是可以相互访问的。

使用以下命令查看docker的网桥:

docker network ls

这三个是默认的。在默认情况下,所有容器创建时都会被指派到bridge(这里说的是name而非driver)网桥下,使用以下命令查看bridge信息:

docker inspect bridge

信息会有很多,在海量的信息中找到Containers节点,这个节点内存储了包含在本网桥下的所有容器。因为同在一个网桥下,所以访问是没问题的(容器asp_net_core是web应用,mysql01是数据库,nginx001是web服务器,彼此关联):

网桥的类型

如上图所示,默认的网桥类型有三种:bridge、host、none。

bridge类似于虚拟机内网模式,host代表直接使用宿主机网络,none表示容器不使用任何网络。

假设你的服务器IP为 127.0.0.1 ,内有容器A和B,其中A在host模式网桥下,B在bridge模式网桥下,那么你访问A可以直接使用 127.0.0.1:对应端口,访问B则需要先使用-p指令将服务器IP映射到B中。

常用命令

新增
docker network create [-d 网桥类型] 网桥别名
ps:可以使用-d更改类型,如果不使用-d命令,则默认bridge。 删除
docker network rm 网桥别名 查看列表
docker network ls 查看详情
docker inspect 网桥别名 新容器指定网桥
docker run --name 容器别名 --network 网桥别名 镜像名:版本/镜像ID
PS:此命令不影响-v、-p等命令的使用 已有容器加入网桥
docker network connect 网桥别名 容器别名/容器ID

再说点没用的

容器通信这个问题就像冰山,看起来很简单,实际上水面以下还藏着很多未知。当应用的规模脱离单机,向集群、微服务演变时,才发觉单机下的通信只是冰山一角,很多问题在解决以后才发现,原来都是因为原理不够清晰。

现在我觉得,并不是所有东西我们都要学(即便它真的很酷),如果因为学了就要去用,那就像孔雀的羽毛一样华而不实。适合的才是最好。

最新文章

  1. Microsoft.AspNet.Identity 自定义使用现有的表—登录实现
  2. leancloud 手机注册用户(调用API) 教程
  3. lecture15-自动编码器、语义哈希、图像检索
  4. sql FOR XML PATH
  5. Chap6: question38 - 42
  6. jquery ajax 实例
  7. 17--Box2D使用(三、触摸交互)
  8. js输入框对金额的匹配
  9. 升级wamp5集成安装包 php5.2到php5.3
  10. cgLib生成动态代理
  11. CentOS环境下Docker私有仓库搭建
  12. JSON入门看这一篇就够了
  13. 平时作业七 Java
  14. 从零开始学习Java多线程(二)
  15. Linux内核读书笔记第三周 调试
  16. sql 中多表查询-leetcode : Combine Two Tables
  17. springboot mail+Thymeleaf模板
  18. 【转载】VC维,结构风险最小化
  19. 关于JFame 屏幕居中显示的问题
  20. ASP.NET中母版页引用外部js或css文件无效,提示对象未定义解决方法

热门文章

  1. 如果你想or即将成为一名程序员,那你需要知道这些东西!上岗须知~
  2. 用cgroup限制内存以防止Linux因内存用尽卡死
  3. Python自动化准备工作(pycharm安装)
  4. Excel 导出的方法 之二
  5. Helium文档12-WebUI自动化-go_to在当前的Web浏览器窗口中打开指定的URL
  6. 在 Istio 中实现 Redis 集群的数据分片、读写分离和流量镜像
  7. ssm整合所用全部依赖pom.xml(idea版)
  8. APP打开(三)—激活率提升20%的思考
  9. JUC---04Lock(二)ReentrantReadWriteLock
  10. Hive 如何快速拉取大批量数据