当前位置: 首页 > wzjs >正文

网站建设公司方唯品牌宣传策略有哪些

网站建设公司方唯,品牌宣传策略有哪些,潍坊关键词优化软件,灯箱网站开发目录 一、Docker Compose概述 1、主要功能 2、工作原理 二、常用命令参数 1、服务管理 2、构建和重新构建服务 三、Docker Compose的yml文件 1、服务 2、网络 3、存储卷 四、容器编排实现haproxy和nginx负载均衡 一、Docker Compose概述 1、主要功能 定义服务&#xf…

目录

一、Docker Compose概述

        1、主要功能

        2、工作原理

二、常用命令参数

1、服务管理

2、构建和重新构建服务

三、Docker Compose的yml文件

1、服务

2、网络

3、存储卷

四、容器编排实现haproxy和nginx负载均衡


一、Docker Compose概述

1、主要功能
  1. 定义服务: 使用 YAML 格式的配置文件来定义一组相关的容器服务。每个服务可以指定镜像、端口映射、 环境变量、存储卷等参数。 例如,可以在配置文件中定义一个 Web 服务和一个数据库服务,以及它们之间的连接关系。

  2. 一键启动和停止: 通过一个简单的命令,可以启动或停止整个应用程序所包含的所有容器。这大大简化了多容器 应用的部署和管理过程。 例如,使用 docker-compose up 命令可以启动配置文件中定义的所有服务,使用 dockercompose down 命令可以停止并删除这些服务。

  3. 服务编排: 可以定义容器之间的依赖关系,确保服务按照正确的顺序启动和停止。例如,可以指定数据库 服务必须在 Web 服务之前启动。 支持网络配置,使不同服务的容器可以相互通信。可以定义一个自定义的网络,将所有相关的 容器连接到这个网络上。

  4. 环境变量管理: 可以在配置文件中定义环境变量,并在容器启动时传递给容器。这使得在不同环境(如开发、 测试和生产环境)中使用不同的配置变得更加容易。 例如,可以定义一个数据库连接字符串的环境变量,在不同环境中可以设置不同的值。

2、工作原理

Docker Compose 的工作原理是通过一个 YAML 配置文件定义一组相关的 Docker 容器服务,它读取配置文件后,根据其中指定的服务信息,如镜像、端口映射、环境变量、依赖关系等,依次创建和启动各个容器,并管理容器之间的网络连接和数据共享,确保整个应用系统按照预定的配置协同工作。

二、常用命令参数

[root@docker-node1 ~]# vim ~/.vimrc
set ts=2 ai sw=2 et
#yml有严格缩进
[root@docker-node1 ~]# vim  /root/test/docker-compose.yml
version: "1.0"
services:web:image: nginxports:- "80:80"db:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: leo

1、服务管理

docker compose up 

启动配置文件中定义的所有服务。

可以使用 -d 参数在后台启动服务。

可以使用-f 来指定yml文件。

例如: docker-compose up -d

[root@docker-node1 test]# docker compose up -d
[root@docker-node1 test]# docker compose -f /root/test/docker-compose.yml up -d

停止并删除配置文件中定义的所有服务以及相关的网络和存储卷

[root@docker-node1 test]# docker compose down

docker compose start : 启动已经存在的服务,但不会创建新的服务

[root@docker test]# docker compose start

docker compose stop : 停止正在运行的服务

[root@docker test]# docker compose stop

docker compose restart : 重启服务

[root@docker test]# docker compose restart

docker compose ps : 列出正在运行的服务以及它们的状态,包括容器 ID、名称、端口映射等信息

docker compose logs : 查看服务的日志输出。可以指定服务名称来查看特定服务的日志

2、构建和重新构建服务

“docker compose up” 用于创建并启动由 Compose 文件定义的服务,而 “docker compose build” 用于构建服务所使用的镜像。

[root@docker-node1 test]# vim /root/docker/Dockerfile
FROM busybox:latest
RUN touch /file1
[root@docker-node1 test]# vim /root/docker/leo
FROM busybox:latest
RUN touch /file2[root@docker-node1 test]# vim docker-compose.ymlservices:test1:image: test1build:context: /root/dockerdockerfile: Dockerfilecommand: ["/bin/sh","-c","sleep 100000"]container_name: leo1test2:image: test2build:context: /root/dockerdockerfile: leocommand: ["/bin/sh","-c","sleep 100000"]container_name: leo2
[root@docker-node1 test]# docker compose up -d
[+] Running 2/2✔ Container leo1  Started                                                                   0.4s✔ Container leo2  Started                                                                   0.4s[root@docker-node1 test]# docker compose build
#提前构建镜像,但镜像不运行
[root@docker-node1 test]# docker compose build test1
[root@docker-node1 test]# docker compose build test2
#可以分开构建docker compose up build 
启动服务并在启动前重新构建镜像[root@docker-node1 test]# docker compose exec -it test1 /bin/sh
在正在运行的服务容器中执行命令docker-compose pull
拉取配置文件中定义的服务所使用的镜像docker compose config 
验证并查看解析后的 Compose 文件内容,无语法错误则打印输出,加-q不输出

三、Docker Compose的yml文件

Docker Compose 的 YAML 文件用于定义和配置多容器应用程序的各个服务。

1、服务

服务名称

services:web:# 服务1的配置mysql:# 服务2的配置

镜像

services:web:images:nginxmysql:images:mysql:5.7

端口映射

将容器内部的端口映射到主机的端口,以便外部可以访问容器内的服务。例如, - "8080:80" 表示将主机的 8080 端口映射到容器内部的 80 端口。

services:test1:image: test1build:context: /root/dockerdockerfile: Dockerfilecommand: ["/bin/sh","-c","sleep 100000"]container_name: leo1expose:- 1234
[root@docker-node1 test]# docker ps
CONTAINER ID   IMAGE     COMMAND                   CREATED         STATUS         PORTS      NAMES
c7c6fa09dad9   test1     "/bin/sh -c 'sleep 1…"   4 seconds ago   Up 3 seconds   1234/tcp   leo1services:test1:image: nginxcontainer_name: webserverexpose:- 1234ports:- "80:80"
[root@docker-node1 test]# curl 172.25.254.100

环境变量

services:web:images:mysql:5.7environment:MYSQL_ROOT_PASSWORD: leodocker inspect

存储卷

将主机上的目录或文件挂载到容器中,以实现数据持久化或共享。例如, - /host/data:/container/data 将主机上的 /host/data 目录挂载到容器内的 /container/data 路径。

services:test:image: busyboxcommand: ["/bin/sh","-c","sleep 3000"]restart: alwayscontainer_name: busybox1volumes:- /etc/passwd:/tmp/passwd:ro #只读挂在本地文件到指定位置

网络

将服务连接到特定的网络,以便不同服务的容器可以相互通信。

services:test1:image: busybox:latestcontainer_name: leocommand: ["/bin/sh","-c","sleep 100000"]
[root@docker-node1 test]# docker compose up -d
[+] Running 2/2✔ Network test_default  Created                                                             0.1s✔ Container leo         Started                                                             0.3s
#默认网络

指定使用bridge网络

services:test1:image: busybox:latestcontainer_name: leocommand: ["/bin/sh","-c","sleep 100000"]network_mode: bridge #还可以指定none网络

 test1:image: busybox:latestcontainer_name: leocommand: ["/bin/sh","-c","sleep 100000"]networks:- mynet1- mynet2networks:mynet1:driver: bridgemynet2:driver: bridge
[root@docker-node1 test]# docker exec -it leo sh

命令

覆盖容器启动时默认执行的命令。例如, command: python app.py 指定容器启动时运行 python app.py 命令。

[root@docker test]# vim busybox.yml
services:web:image: busyboxcontainer_name: busybox#network_mode: mynet2command: ["/bin/sh","-c","sleep10000000"]

2、网络

定义 Docker Compose 应用程序中使用的网络。可以自定义网络名称和驱动程序等属性。 默认情况下docker compose 在执行时会自动建立网络。

services:test:image: busybox:latestcontainer_name: tsetcommand: ["/bin/sh","-c","sleep 100000"]network_mode: defaultnetworks:default:external: truename: bridge
容器建立后会使用宿主机上的默认 “bridge” 网络进行通信
services:test:image: busybox:latestcontainer_name: tsetcommand: ["/bin/sh","-c","sleep 100000"]network_mode: defaulttest2:image: busybox:latestcontainer_name: tset2command: ["/bin/sh","-c","sleep 100000"]networks:- mynet1networks:default:external: truename: bridgemynet1:driver: bridge

services:test:image: busybox:latestcontainer_name: tsetcommand: ["/bin/sh","-c","sleep 100000"]network_mode: defaulttest2:image: busybox:latestcontainer_name: tset2command: ["/bin/sh","-c","sleep 100000"]networks:- mynet1- mynet2networks:default:external: truename: bridgemynet1:driver: bridgemynet2:ipam:driver: defaultconfig:- subnet: 172.26.0.0/24gateway: 172.26.0.254

3、存储卷

定义 Docker Compose 应用程序中使用的存储卷。可以自定义卷名称和存储位置等属性。

services:test:image: busyboxcommand: ["/bin/sh","-c","sleep 3000"]restart: alwayscontainer_name: busybox1volumes:- data:/test #挂在data卷- /etc/passwd:/tmp/passwd:ro #只读挂在本地文件到指定位置
volumes:data:name: leoma #指定建立卷的名字

四、容器编排实现haproxy和nginx负载均衡

容器编排实现 HAProxy 和 Nginx 负载均衡的工作原理如下:通过容器编排工具将 Nginx 容器实例和 HAProxy 容器部署在同一环境中。Nginx 容器作为后端服务器提供服务,HAProxy 容器处于前端,接收外部请求,根据预设的负载均衡策略将请求分发到不同的 Nginx 容器上,从而实现高效、可靠的流量分配,提高系统的整体性能和可用性。

HAProxy 服务: 作用:作为负载均衡器,负责将外部请求分发到后端的 Nginx 服务器(web1 和 web2)

web1 和 web2 服务(Nginx 服务器): 作用:作为后端服务器,提供实际的网页服务

internel 网络: 作用:用于连接内部的服务,即 web1 和 web2。这个网络使得这两个后端服务器可以相互通信,并且与 HAProxy 进行内部通信

extrnal 网络: 作用:连接外部世界和 HAProxy,使得外部客户端可以访问到负载均衡器,进而访问后端的 Nginx 服务器

data_web1 和 data_web2: 作用:用于存储 Nginx 服务器的网页数据,确保数据的持久性和可移植性

[root@docker-node1 test]# mkdir /var/lib/docker/volumes/conf[root@docker-node1 mnt]# rpm2cpio haproxy-2.4.17-3.el9.x86_64.rpm  | cpio -id[root@docker-node1 haproxy]# cp haproxy.cfg /var/lib/docker/volumes/conf/
[root@docker-node1 haproxy]# pwd
/mnt/etc/haproxy[root@docker-node1 conf]# vim haproxy.cfg
listen webserverbind *:80balance roundrobinserver web1 webserver1:80 check inter 3 fall 3 rise 5server web2 webserver2:80 check inter 3 fall 3 rise 5
[root@docker-node1 test]# docker compose -f haproxy.yml config
name: test
services:haproxy:container_name: haproxyimage: haproxy:2.3networks:extrnal: nullinternel: nullports:- mode: ingresstarget: 80published: "80"protocol: tcprestart: alwaysvolumes:- type: bind	# 卷的类型为绑定主机目录source: /var/lib/docker/volumes/conf/haproxy.cfg	# 主机上的源文件路径target: /usr/local/etc/haproxy/haproxy.cfg	# 容器内的目标路径bind:create_host_path: trueweb1:container_name: webserver1expose:- "80"image: nginx:latestnetworks:internel: nullrestart: alwaysvolumes:- type: volumesource: data_web1target: /usr/share/nginx/htmlvolume: {}web2:container_name: webserver2expose:- "80"image: nginx:latestnetworks:internel: nullrestart: alwaysvolumes:- type: volumesource: data_web2target: /usr/share/nginx/htmlvolume: {}
networks:extrnal:name: test_extrnaldriver: bridgeinternel:name: test_interneldriver: bridge
volumes:data_web1:name: data_web1data_web2:name: data_web2
[root@docker-node1 test]# docker compose -f haproxy.yml up -d
[+] Running 7/7✔ Network test_internel  Created                                                                                                                                              0.1s✔ Network test_extrnal   Created                                                                                                                                              0.1s✔ Volume "data_web1"     Created                                                                                                                                              0.0s✔ Volume "data_web2"     Created                                                                                                                                              0.0s✔ Container webserver2   Started                                                                                                                                              1.2s✔ Container haproxy      Started                                                                                                                                              1.1s✔ Container webserver1   Started                                                                                                                                              1.2s
[root@docker-node1 test]# docker compose -f haproxy.yml ps
NAME         IMAGE          COMMAND                   SERVICE   CREATED              STATUS                          PORTS
haproxy      haproxy:2.3    "docker-entrypoint.s…"   haproxy   About a minute ago   Restarting (1) 19 seconds ago
webserver1   nginx:latest   "/docker-entrypoint.…"   web1      About a minute ago   Up About a minute               80/tcp
webserver2   nginx:latest   "/docker-entrypoint.…"   web2      About a minute ago   Up About a minute               80/tcp

测试访问

[root@docker-node1 ~]# echo webserver2 > /var/lib/docker/volumes/data_web2/_data/index.html
[root@docker-node1 ~]# echo webserver1 > /var/lib/docker/volumes/data_web1/_data/index.html
[root@docker-node1 ~]# for i in {1..10};
> do
> curl 172.25.254.100
> done
webserver1
webserver2
webserver1
webserver2
webserver1
webserver2
webserver1
webserver2
webserver1
webserver2
http://www.dtcms.com/wzjs/83505.html

相关文章:

  • 论坛模板建站seo关键词排名优化制作
  • 科技类网站简介怎么做安装百度到手机桌面
  • 创建简单的微信小程序热狗seo优化外包
  • wordpress 调用标签云网站排名优化师
  • 网站建设步骤完整版深圳关键词排名seo
  • 做电影网站需要多打了服务器广告网站留电话
  • 跳舞游戏做的广告视频网站培训
  • 企业网站做多大成都关键词seo推广平台
  • 网站如何提升用户体验爱站长工具综合查询
  • 网站建设销售怎么样做网站推广
  • 个性化网站建设开发线上推广方式都有哪些
  • 专门做离异相亲的网站云南百度推广开户
  • 湘潭做网站 磐石网络很专业持续优化完善防控措施
  • 网站建设要提供营业执照搜索排名提升
  • 五合一小程序网站一个企业该如何进行网络营销
  • 在线视频网站 一级做爰片黑帽seo技巧
  • 用户体验设计经典案例比较好的网络优化公司
  • 动态网站如何静态化长尾词挖掘工具
  • php通用企业网站源码北京建站公司
  • 有哪些可以做推广的网站seo网站优化培训厂家报价
  • 技术先进的网站建百度公司网站推广怎么做
  • 高新企业如何在税务网站做备案如何做免费网络推广
  • 南昌优化网站分析京津冀协同发展
  • 沈阳酒店企业网站制作公司广州代运营公司有哪些
  • 怎么做可以直播的网站网站怎么制作
  • 最简约的网站软文案例
  • 建设银行天津分行门户网站百度指数官网登录
  • 玉树市wap网站建设公司2023百度秒收录技术
  • 前端代码 分享网站凡科网怎么建网站
  • 网站推广建设策略网络营销的方式有哪些