Compose简介:

Compose是Docker容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose,不再需要使用shell脚本来启动容器。
Compose通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用。
docker-compose默认的模板文件是 docker-compose.yml,其中定义的每个服务都必须通过image 指令指定镜像或 build指令(需要Dockerfile)来自动构建镜像。
1
2
3
1.下载并安装docker-compose

安装包:(二进制文件)

docker-compose-Linux-x86_64-1.22.0
1
#1.下载
[root@server1 ~]# ls
docker-compose-Linux-x86_64-1.22.0
#2.拷贝二进制文件
[root@server1 ~]# mv docker-compose-Linux-x86_64-1.22.0 /usr/local/bin/docker-compose
#3.添加权限
[root@server1 ~]# chmod +x /usr/local/bin/docker-compose
1
2
3
4
5
6
7
2.创建目录

[root@server1 ~]# cd /tmp/
[root@server1 tmp]# mkdir docker
[root@server1 tmp]# ls
docker
[root@server1 tmp]# cd docker/
[root@server1 docker]# pwd
/tmp/docker
[root@server1 docker]# mkdir compose
[root@server1 docker]# cd compose/
[root@server1 compose]# ls
1
2
3
4
5
6
7
8
9
10
3.编写compose文件

[root@server1 compose]# vim docker-compose.yml
#######################
web1: #容器名称
image: nginx #镜像名称
expose: #对外暴露端口
- 80
volumes: #挂载卷
- ./web1:/usr/share/nginx/html #将当前目录下的web1挂载到容器的/usr/share/nginx/html 目录下
web2:
image: nginx
expose:
- 80
volumes:
- ./web2:/usr/share/nginx/html

haproxy:
image: haproxy
volumes:
- ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro #只读挂载
links: #容器链接
- web1
- web2
ports: #端口映射
- "80:80"
expose:
- "80"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

4.编写发布文件

[root@server1 compose]# mkdir web1
[root@server1 compose]# mkdir web2
[root@server1 compose]# echo web1 > web1/index.html
[root@server1 compose]# echo web2 > web2/index.html
1
2
3
4
5.编写haproxy文件

haproy:提供负载均衡
1
[root@server1 compose]# mkdir haproxy
[root@server1 compose]# cd haproxy/
[root@server1 haproxy]# ls
[root@server1 haproxy]# vim haproxy.cfg
#######################
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice

defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
stats uri /status

frontend balancer
bind 0.0.0.0:80
default_backend web_backends

backend web_backends
balance roundrobin #轮询算法;check表示健康检查
server server1 web1:80 check
server server2 web2:80 check
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

[root@server1 haproxy]# ls
haproxy.cfg
[root@server1 haproxy]# cd ..
[root@server1 compose]# ls
docker-compose.yml haproxy web1 web2
1
2
3
4
5
6.下载并导入镜像

镜像:

nginx.tar
ubuntu.tar
1
2
#1.下载镜像
[root@server1 ~]# ls
nginx.tar ubuntu.tar
#2.导入镜像
[root@server1 ~]# docker load -i nginx.tar
[root@server1 ~]# docker load -i haproxy.tar
#3.查看年镜像
[root@server1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 881bd08c0b08 2 weeks ago 109MB
haproxy latest fbd1f55f79b3 3 years ago 139MB
1
2
3
4
5
6
7
8
9
10
11
7.启动compose

[root@server1 ~]# cd /tmp/docker/compose
#启动;注意必须在此路径下才能执行
[root@server1 compose]# docker-compose up -d
1
2
3

#查看日志
[root@server1 compose]# docker-compose logs
Attaching to compose_haproxy_1, compose_web1_1, compose_web2_1
haproxy_1 | <7>haproxy-systemd-wrapper: executing /usr/local/sbin/haproxy -p /run/haproxy.pid -f /usr/local/etc/haproxy/haproxy.cfg -Ds
1
2
3
4
测试:

输入: http://172.25.66.1/status 发现可以实现健康检查
1

输入:http://172.25.66.1/ 刷新网页,发现可以实现轮询
1

管理compose:

#必须先关闭才能删除
[root@server1 haproxy]# docker-compose stop
[root@server1 haproxy]# docker-compose rm
1
2
3

#下次想再使用,只需再开启即可
[root@server1 haproxy]# docker-compose up -d
1
2

————————————————
版权声明:本文为CSDN博主「奋斗吧,青年!」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lilygg/article/details/88760613

Docker Compose 部署Nginx服务实现负载均衡的更多相关文章

  1. Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  2. docker - compose 部署 Nginx

    主要介绍 docker 中 Nginx 的部署及项目目录挂载券的方法.docker 中部署一个服务,有三种方法,分别是 docker run.Dockerfile.docker-compose . 下 ...

  3. Docker Compose部署 nginx代理Tomcat集群

    一.简介 使用Docker镜像部署Nginx代理的多个Tomcat集群: 使用Dockerfile构建nginx镜像 使用Dockerfile构建tomcat镜像 mysql镜像使用docker hu ...

  4. 【Nginx】Windows平台下配置Nginx服务实现负载均衡

    前言:废话不多说了,直接上步骤. 系统环境:win10 测试用的开发环境和服务类型:VS2022 + DotNet 6 + WebApi 1.本地先创建一个webapi项目,用于测试使用. 2.新建一 ...

  5. Nginx服务器之负载均衡策略(6种)

    一.关于Nginx的负载均衡 在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器.详情请查看我的另一篇博客. 二.Ng ...

  6. Docker打包部署前端项目与负载均衡

    设置淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org //在home/fn1 home/fn2放入项目和nginx ...

  7. Nginx服务器之负载均衡策略

    http://www.cnblogs.com/1214804270hacker/p/9325150.html

  8. Docker(二)-在Docker中部署Nginx实现负载均衡(视频教程)

    本教程介绍利用Docker部署Nginx服务实现负载均衡. (双击全屏播放)

  9. 从零开始一步一步搭建Ubuntu Server服务器、修改数据源、安装Docker、配置镜像加速器、Compose部署Gitlab服务

    场景 最终目的是使用Docker Compose部署一个Gitlab服务. 效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序 ...

随机推荐

  1. 一台服务器配置多个TOMCAT

    如果要在一台服务器上配置多个Tomcat,主要就是要避免Tomcat服务器的端口冲突的问题.只需要修改CATALINA_HOME\conf\server.xml中的启动端口和连接端口就OK了! 下面我 ...

  2. c语言位域的使用注意事项——数据溢出

    c语言可以使用位域来节省变量的空间,例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位.位域的取值范围非常有限,数据稍微大些就会发生溢出,这个字使用keil的使用,keil提 ...

  3. Vue——核心思想--mvvm

    Vue的核心思想为数据驱动和组件化. 一.数据驱动——双向绑定 Vue是一种MVVM框架.而DOM是数据的一个种自然映射.传统的模式是通过Ajax请求从model请求数据,然后手动的触发DOM传入数据 ...

  4. OpenCV 学习笔记(2) 使用鼠标绘制矩形并截取和保存矩形区域图像

    http://www.cnblogs.com/lidabo/p/3437587.html 0 效果展示 1工程源码 #include <opencv2/core/core.hpp>   # ...

  5. JavaScript基础10——正则

    什么是正则?     正则表达式(regular expression)是一个描述字符规则的对象.可以用来检查一个字符串是否含有某个字符,将匹配的字符做替换或者从某个字符串中取出某个条件的子串等.   ...

  6. 可以使用WinDbg将PE映像作为转储文件打开

    WinDbg.ntsd.cdb.kd和其他任何使用DbgEng打开转储文件的工具都有一个鲜为人知的特性.事实证明,使用DbgEng提供的任何功能,在任何可以打开转储文件(用户转储.内核转储等)的地方, ...

  7. ent 基本使用 一 schema 迁移

    ent 是 facebook 开源的golang orm 框架,简单强大,以下是一个简单使用 环境准备 安装ent 工具 go get github.com/facebookincubator/ent ...

  8. Micro Benchmark Framework java 基准测试类库

    Micro Benchmark Framework 框架主要是method 层面上的 benchmark,精度可以精确到微秒级 比较典型的使用场景还有: 想定量地知道某个函数需要执行多长时间,以及执行 ...

  9. Apache ServiceComb Pack 微服务分布式数据最终一致性解决方案

    https://github.com/OpenSagas-csharp/servicecomb-pack-csharp Saga基本使用指南 使用前置条件说明 如果还有同学对Saga还不甚了解的同学, ...

  10. mac 搭建Java Spring boot 环境(eclipse)

    安装 下载安装Springboot 安装完成后,创建项目 1. 2. 3. 完成创建!