网站建设拓扑图没有域名可以建网站吗
2026/1/19 22:27:30 网站建设 项目流程
网站建设拓扑图,没有域名可以建网站吗,扬州网站建设价格低,网站规划设计流程Docker Swarm 在单机容器排布中#xff0c;我们定义容器启动顺序#xff0c;和一件启动#xff0c;采用了Docker Compose#xff0c;如果是生产环境多机器部署#xff0c;我们需要用到Docker Swarm #xff0c;下面请看官网描述#xff1a; 集群模式是管理 Docker 守护…Docker Swarm在单机容器排布中我们定义容器启动顺序和一件启动采用了Docker Compose如果是生产环境多机器部署我们需要用到Docker Swarm 下面请看官网描述集群模式是管理 Docker 守护进程集群的高级功能如果您打算将 Swarm 用作生产运行时环境请使用 Swarm 模式如果您不打算使用 Swarm 进行部署请改用 Docker ComposeDocker Swarm的先决条件你必须要有docker如果已经运行了Docker Swarm 输入命令docker system info查看信息如果没有运行 需要初始化Swarm集群docker swarm initSwarm 服务和Kubernetes 服务这两个编排器对“服务”一词的定义截然不同。在 Swarm 中服务同时提供调度和网络功能负责创建容器并提供将流量路由到这些容器的工具。而在 Kubernetes 中调度和网络功能是分开处理的部署或其他控制器负责将容器调度为 Pod而服务仅负责为这些 Pod 添加网络功能创建和加入Swarm集群所有机器都可通过网络通信并都安装了Docker引擎 端口设置必须启用以下端口。在某些系统中这些端口默认是开放的2377用于与管理节点通信的 TCP端口7946用于覆盖网络节点发现的 TCP/UDP端口4789用于覆盖网络流量的 UDP端口可配置端口4789是 Swarm 数据路径端口也称为 VXLAN 端口的默认值。务必阻止任何不受信任的流量到达此端口因为 VXLAN 不提供身份验证。此端口只能对受信任的网络开放切勿在边界防火墙上开放# 临时关闭防火墙测试环境 systemctl stop firewalld # 生产环境推荐开放指定端口2377集群管理、7946节点通信、4789网络通信 firewall-cmd --permanent --add-port2377/tcp firewall-cmd --permanent --add-port7946/tcp firewall-cmd --permanent --add-port7946/udp firewall-cmd --permanent --add-port4789/udp firewall-cmd --reload该--advertise-addr标志将管理节点配置为发布其地址IP。集群中的其他节点必须能够通过该 IP 地址访问管理节点docker swarm init --advertise-addr MANAGER-IP ## 输出信息有加入本集群的token docker swarm init --advertise-addr 192.168.99.100 Swarm initialized: current node (dxn1zf6l61qsb1josjja83ngz) is now a manager. To add a worker to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \ 192.168.99.100:2377 To add a manager to this swarm, run docker swarm join-token manager and follow the instructions.此时查看node情况会出现已经准备好的Manager 节点信息docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS dxn1zf6l61qsb1josjja83ngz * manager1 Ready Active Leader加入Swarm集群在另一台工作机器上输入join --token命令即可加入Swarm集群集群中的manager和worker可以指定也可以修改升级或者降级docker swarm join \ --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \ 192.168.99.100:2377 This node joined a swarm as a worker.Docker Swarm 部署服务该docker service create命令用于创建服务。该--name标志用于指定服务helloworld。该--replicas标志指定 1 个正在运行的实例的期望状态。这些参数alpine ping docker.com将服务定义为执行命令的 Alpine Linux 容器ping docker.comdocker service create --replicas 1 --name helloworld alpine ping docker.com 9uk4639qpg7npwf3fn2aasksr运行docker service ls以下命令查看正在运行的服务列表如果我们集群只有三台机器但是我指定的副本是4个也可以会随机分配并不一定是一台机器一个docker service ls ID NAME SCALE IMAGE COMMAND 9uk4639qpg7n helloworld 1/1 alpine ping docker.com运行docker service inspect --pretty SERVICE-ID以显示有关服务的详细信息如果要以 json 格式返回服务详细信息请运行不带--pretty标志的相同命令[manager1]$ docker service inspect --pretty helloworld ID: 9uk4639qpg7npwf3fn2aasksr Name: helloworld Service Mode: REPLICATED Replicas: 1 Placement: UpdateConfig: Parallelism: 1 ContainerSpec: Image: alpine Args: ping docker.com Resources: Endpoint Mode: vip运行以下命令docker service ps SERVICE-ID查看哪些节点正在运行该服务[manager1]$ docker service ps helloworld NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS helloworld.1.8p1vev3fq5zm0mi8g0as41w35 alpine worker2 Running Running 3 minutes在集群中扩展服务docker service scale SERVICE-IDNUMBER-OF-TASKSdocker service scale helloworld5 helloworld scaled to 5在集群中删除服务docker service rm helloworld helloworld服务滚动更新部署一个基于 Redis 7.4.0 容器镜像的服务。然后将使用滚动更新的方式将该服务升级到 Redis 7.4.1 容器镜像--update-delay标志位用于配置服务任务或任务集更新之间的延迟时间docker service create \ --replicas 3 \ --name redis \ --update-delay 10s \ redis:7.4.0 0u6a4s31ybk7yw2wyvtikmu50发布服务端口创建服务时可以使用该--publish标志发布端口。 --porttarget用于指定容器内部的端口published--bind 用于指定路由网格上绑定的端口。如果省略端口published则每个服务任务都会绑定一个随机的高位端口eg:将 nginx 容器中的 80 端口发布到 swarm 集群中任何节点的 8080 端口docker service create \ --name my-web \ --publish published8080,target80 \ --replicas 2 \ nginx绕过路由网格默认情况下发布端口的 Swarm 服务会使用路由网格。当您连接到任何 Swarm 节点上发布的端口时无论该节点是否运行特定服务您都会被透明地重定向到运行该服务的工作节点。实际上Docker 充当了 Swarm 服务的负载均衡器要绕过路由网格必须使用长--publish服务并设置mode--password 参数host。如果省略该mode参数或将其设置为 --passwordingress则会使用路由网格docker service create --name dns-cache \ --publish published53,target53,protocoludp,modehost \ --mode global \ dns-cacheoverlay网络Docker集群会产生两种不同的流量控制和管理平面流量这包括集群管理消息例如加入或离开集群的请求。此类流量始终加密。应用数据平面流量包括容器流量以及与外部客户端之间的流量。当您初始化一个集群或将 Docker 主机加入现有集群时会在该 Docker 主机上创建两个新网络一个名为 overlay_network 的覆盖网络ingress用于处理与 Swarm 服务相关的控制和数据流量。当您创建 Swarm 服务但未将其连接到用户定义的覆盖网络时它ingress默认连接到该网络。一个名为 的桥接网络docker_gwbridge它将各个 Docker 守护进程连接到参与集群的其他守护进程创建覆盖网络在Manager 节点创建网络# 创建名为 test-network 的overlay网络自定义网络名可修改--driver overlay指定网络类型为 overlay这是 Swarm 集群跨节点通信的唯一支持类型--attachable允许手动创建的容器非 Swarm Service也能加入该网络提升灵活性think-big-network自定义网络名称后续部署服务时需引用该名称docker network create --driver overlay --attachable test-network验证网络是否创建成功在Manager节点上执行docker network ls | grep test-network部署服务指定ip和网络用主机名约束更加稳妥# 方式1用IP约束部署 docker service create \ --name redis-service \ --network test-network \ # 加入自定义网络 --constraint node.ip10.19.1.2 \ # 强制部署到10.19.1.2 --publish 6379:6379 \ # 端口映射 --replicas 1 \ # 单副本 redis:latest # 镜像名 # 方式2用主机名约束替换为10.19.1.2的实际主机名如redis-node # docker service create \ # --name redis-service \ # --network test-network \ # --constraint node.hostnameredis-node \ # --publish 6379:6379 \ # --replicas 1 \ # redis:latest数据持久化例如Mysql--mount# 部署MySQL时添加数据挂载 docker service create \ --name db-service \ --network think-big-network \ --constraint node.ip10.19.3.1 \ --publish 3306:3306 \ --replicas 1 \ --env MYSQL_ROOT_PASSWORD123456 \ --mount typebind,src/home/ubuntu/mysql/data,dst/var/lib/mysql \ # 数据持久化挂载 mysql:8.0验证网络通信直接用服务名overlay网络自动解析# 进入app-service容器 docker exec -it $(docker ps | grep app-service | awk {print $1}) /bin/bash # ping Redis服务直接用服务名overlay网络自动解析 ping redis-service # ping 数据库服务 ping db-service # ping MinIO服务 ping minio-service

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询