Docker Swarm 网络

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Docker Swarm 网络

Docker Swarm 网络

默认情况下,Docker作为一个隔离的单节点工作。所有容器仅部署在引擎上。群模式将它变成了一个多主机集群感知引擎。

初始化集群

$ docker swarm init
Swarm initialized: current node (korrjr24x2drfvlu78xi77lno) is now a manager.
To add a worker to this swarm, run the following command:
    docker swarm join --token SWMTKN-1-1hriikcsgzi577cl3xcu6s0x7kk3058by92vvbtdltjsz8mp9s-3j2cuvx64eqm0tmkmwru6tn9z 172.17.0.139:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
$ 

在第二台主机上执行下面的命令,将它作为一个worker添加到集群中。

$ token=$(ssh -o StrictHostKeyChecking=no 172.17.0.139 "docker swarm join-token -q worker") && docker swarm join 172.17.0.139:2377 --token $token
Warning: Permanently added '172.17.0.139' (ECDSA) to the list of known hosts.
This node joined a swarm as a worker.

Overlay Networks是通过Docker CLI创建的,类似于在主机之间创建桥接网络。当创建网络时,将使用一种覆盖驱动类型。当新的服务通过集群模式部署时,它们可以利用这个网络允许容器进行通信.


要创建Overlay Network,使用CLI并定义驱动程序。网络只能通过群管理器节点创建。网络名称为app1-network

$ docker network create -d overlay app1-network
vuq3m5hi0t0jkvo1djuhpeqsp
$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
vuq3m5hi0t0j        app1-network        overlay             swarm
f9000dd7435e        bridge              bridge              local
d17623c76ebf        docker_gwbridge     bridge              local
8b89e3388c32        host                host                local
kuugxuiaalh1        ingress             overlay             swarm

注意:你创建的overlay网络不会出现在工作节点上。manager节点处理网络创建和正在部署的服务。

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
1d52a41d7ffb        bridge              bridge              local
398c1bd88b1d        docker_gwbridge     bridge              local
8b89e3388c32        host                host                local
kuugxuiaalh1        ingress             overlay             swarm
b3dc159371bf        none                null                local

一旦创建了网络,就可以部署服务,并能够与网络上的其他容器通信。

下面将使用网络部署Redis服务。该服务的名称将是redis,可用于通过DNS发现。

$ docker service create --name redis --network app1-network redis:alpine
wdz1i71gu6c1ep54jjfja1ziu

下一步将在不同的节点上部署一个web应用程序,通过网络与Redis进行交互。

$ docker service create \
>     --network app1-network -p 80:3000 \
>     --replicas 1 --name app1-web \
>     katacoda/redis-node-docker-example
p8ktbxnju1cy9vopuaxwobe0q

对于双节点部署,每个容器将被部署到不同的主机上。

他们会利用覆盖网络和DNS发现进行通信。发送HTTP请求将在Redis中保持客户端的IP。

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
cb586ee1000f        redis:alpine        "docker-entrypoint.s…"   55 seconds ago      Up 52 seconds       6379/tcp            redis.1.ajuo5o3z4snh0shbjur9qhnsg
$ curl host01
This page was generated after talking to redis.
Application Build: 1
Total requests: 1
IP count: 
    ::ffff:10.0.0.2: 1
$ curl host01
This page was generated after talking to redis.
Application Build: 1
Total requests: 2
IP count: 

参考:


Manage swarm service networks

Use overlay networks

Networking with overlay networks

How Docker Swarm Container Networking Works – Under the Hood


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
16天前
|
负载均衡 应用服务中间件 网络安全
docker swarm添加更多的服务
【10月更文挑战第16天】
16 6
|
16天前
|
Docker 容器
docker swarm启动服务并连接到网络
【10月更文挑战第16天】
19 5
|
2天前
|
API Docker 容器
【赵渝强老师】构建Docker Swarm集群
本文介绍了如何使用三台虚拟主机构建Docker Swarm集群。首先在master节点上初始化集群,然后通过特定命令将node1和node2作为worker节点加入集群。最后,在master节点上查看集群的节点信息,确认集群构建成功。文中还提供了相关图片和视频教程,帮助读者更好地理解和操作。
|
2天前
|
调度 Docker 容器
【赵渝强老师】Docker Swarm集群的体系架构
Docker Swarm自1.12.0版本起集成至Docker引擎,无需单独安装。它内置服务发现功能,支持跨多服务器或宿主机创建容器,形成集群提供服务。相比之下,Docker Compose仅限于单个宿主机。Docker Swarm采用主从架构,Swarm Manager负责管理和调度集群中的容器资源,用户通过其接口发送指令,Swarm Node根据指令创建容器运行应用。
|
2天前
|
Docker 容器
【赵渝强老师】Docker的None网络模式
Docker容器在网络方面实现了逻辑隔离,提供了四种网络模式:bridge、container、host和none。其中,none模式下容器具有独立的网络命名空间,但不包含任何网络配置,仅能通过Local Loopback网卡(localhost或127.0.0.1)进行通信。适用于不希望容器接收任何网络流量或运行无需网络连接的特殊服务。
|
2天前
|
Docker 容器
【赵渝强老师】Docker的Host网络模式
Docker容器在网络环境中是隔离的,可通过配置不同网络模式(如bridge、container、host和none)实现容器间或与宿主机的网络通信。其中,host模式使容器与宿主机共享同一网络命名空间,提高性能但牺牲了网络隔离性。
|
2天前
|
Kubernetes Docker 容器
【赵渝强老师】Docker的Container网络模式
Docker容器在网络环境中彼此隔离,但可通过配置不同网络模式实现容器间通信。其中,container模式使容器共享同一网络命名空间,通过localhost或127.0.0.1互相访问,提高传输效率。本文介绍了container模式的特点及具体示例。
|
2天前
|
Linux Docker 容器
【赵渝强老师】Docker的Bridge网络模式
本文介绍了Docker容器的网络隔离机制及其四种网络模式:bridge、container、host和none。重点讲解了默认的bridge模式,通过示例演示了如何创建自定义bridge网络并配置容器的网络信息。文中还附有相关图片和视频讲解,帮助读者更好地理解Docker网络的配置和使用方法。
|
14天前
|
负载均衡 安全 调度
深入调查研究Docker Swarm
【10月更文挑战第19天】
26 0
|
6月前
|
数据安全/隐私保护 虚拟化 Docker
Docker Swarm 集群搭建
Docker Swarm 集群搭建
下一篇
无影云桌面