Docker初体验(四)- docker网络

当使用docker创建服务集群时,容器间的交互都是通过网络请求来实现的。那么docker是怎么管理容器网络来保证容器的网络通信呢?展开讨论之前,我们需要知道docker启动容器有三种启动容器的方式:

1. docker run

2. docker compose

3. docker swarm

在不同的模式下,docker有不同的方式来管理容器的网络。

docker容器网络

当安装完docker后,执行docker network ls命令,你会看到:

三个网络是docker自带的。其中bridge网络是单独的网络,与主机网络是隔离的;host是指主机和容器共享相同的网络;none是无网络接口。

compose中的网络

假如使用compose启动的应用目录为myapp, docker-compose.yml如下: 

当执行了docker-compose之后,系统会完成下面三个步骤:

1. docker会创建一个名为myapp_default的bridge网络。

2. 创建名为web的容器,并加入myapp_default网络。

3. 创建名为db的容器,并加入myapp_default网络。

compose中的容器能够通过容器名web和db来进行网络交互,web应用可以通过URLpostgres://db:5432来访问到数据库。

swarm集群中的网络

swarm集群网络,也可以理解成docker多主机环境下的网络。在swarm模式下,可以在管理节点上创建overlay网络。比如,你可以使用下面的命令来创建网络,并启动容器使用该网络:

我们可以在集群模式下,创建多个overlay子网,不同类型的服务使用不同的子网来进行隔离。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 相信每个店面可能都会出现,调班或者是换班现象。因为人员有事或者是其他原因需要我们班次调动,我们都可以是理解的。 这...
    孙倩倩Rela阅读 1,163评论 6 0
  • 已经是第三个失眠的晚上了,心事如野草般肆意生长。阿词又翻了个身,身体下的床板吱吱作响,室友的鼾声也此起彼伏,但是翻...
    尹提莫阅读 208评论 0 0
  • 碎色的天空,停不下的雨,我怎么感觉自己像是一条蹦哒到岸上的鱼。
    热衷_eb03阅读 319评论 0 2