企业——Docker compose的搭建

一.什么是Docker compose?

  Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose不再需要使用shell脚本来启动容器。

  Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

  docker-compose默认的模板文件是 docker-compose.yml,其中定义的每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建。

其它大部分指令都跟 docker run 中的类似。

  如果使用 build 指令,在 Dockerfile 中设置的选项(例如:CMD, EXPOSE, VOLUME, ENV 等) 将会自动被获取,无需在 docker-compose.yml 中再次设置。
使用Compose 基本上分为三步:1.Dockerfile 定义应用的运行环境  2.docker-compose.yml 定义组成应用的各服务  3.docker-compose up 启动整个应用

二.Docker compose 的搭建

1.将下载的二进制文件移到 /usr/local/bin/,并赋予执行权限

  mv  docker-compose-Linux-x86_64-1.22.0  /usr/local/bin/docker-compose
  chmod +x /usr/local/bin/docker-compose

2.编写模板文件 docker-compose.yml

  mkdir -p /tmp/docker/compose
  cd /tmp/docker/compose
  vim docker-compose.yml
    web1:
      image: nginx
      expose:
        - 80
      volumes:
        - ./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"

3.编写测试用的测试页面

  pwd

    /tmp/docker/compose

  mkdir web1/web2

  echo web1 > web1/index.html
  echo web2 > web2/index.html

4.用haproxy实现负载均衡

  pwd

    /tmp/docker/compose

  mkdir haproxy
  cd 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  ##实现的是:轮训的效果
      server server1 web1:80 check
      server server2 web2:80 check

5.导入镜像,并运行compose

  docker load -i nginx.tar
  docker load -i haproxy.tar

  cd -
    /tmp/docker/compose/haproxy
  docker-compose up -d
    Creating compose_web1_1 ... done
    Creating compose_web2_1 ... done
    Creating compose_haproxy_1 ... done
  docker-compose logs      ##可以查看日志记录
    Attaching to compose_haproxy_1, compose_web2_1, compose_web1_1
    haproxy_1 | <7>haproxy-systemd-wrapper: executing /usr/local/sbin/haproxy -p /run/haproxy.pid -f /usr/local/etc/haproxy/haproxy.cfg -Ds

6.进入浏览器进行测试  刷新会出现轮训的效果,而且会记录到log日志文件中

      

7.想要删除相应的创建好的容器,需要先关闭,再删除

      

原文地址:https://www.cnblogs.com/wf-aiyouwei/p/10789538.html

时间: 2024-10-08 21:31:44

企业——Docker compose的搭建的相关文章

docker compose环境搭建

概述 Docker Compose提供一个简单的基于YAML配置语言,用于描述和组装多容器的分布式应用. 使用docker定义和运行复杂的应用,使用compose,可以在一个文件里,定义多容器的应用.只需要三步即可完成一个应用的创建. Dockerfile定义app的运行环境 docker-compose.yml定义组成app的services run docker-compose up 环境搭建 系统:ubuntu 14.04 curl -L https://github.com/docker

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

场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100902301 Docker Compose基本使用-使用Compose启动Tomcat为例: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100904080 Docker Compose部署项目到容器-基于Tomc

有容云:实战总结之 利用Docker、Docker Compose &amp;Rancher构建持续部署

前言: 本文由John Patterson . Chris Lunsford写于2016年4月4日,译者有容云张向波,转载请注明出处.(原文链接见文末) 作者John Patterson和Chris Lunsford 运营了一家提供运营和基础架构服务的公司,本文是他们给大家分享的内容:关于如何通过使用Docker.Docker-Compose和Rancher来实现容器部署落地. 我们想跟你一起从头开始体验整个过程,特别是之间遇到的一些痛点和所做的决策.目前,已经有许多的资源和工具可以与Docke

Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践

我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的便利,是的,我也是这样认为的,I know your felling . 前期了解概念什么的确实比较无聊,请不要着急精彩马上开始,当大家对 docker 相关概念有所了解之后,后面我会结合 Spring Boot 给大家来一系列的小例子,会让大家感受到使用 Docker 就是这么爽! 今天给大家演出的导演是 Docker 家族的 docker-compare ,主演是 Spring Boot.

Docker Compose部署Nexus3时的docker-compose,yml代码

场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100902301 Docker Compose基本使用-使用Compose启动Tomcat为例: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100904080 Docker Compose部署项目到容器-基于Tomc

Docker Compose容器编排

本章知识点概括: Docker Compose容器编排构建自动发现的Docker服务架构实现容器服务自动加入Nginx集群 **Docker Compose容器编排功能** Docker compose的前身是Fig,它是一个定义及运行多个docker容器的工具 使用Docker Compose不再需要使用shell脚本来启动容器 Docker Compose非常适合组合是同多个容器进行开发的场景 可以执行多个容器的操作 **Docker Compose容器编排** YAML是一种标记语言很直观

centos7+docker+Jenkins+svn搭建自动化部署平台

centos7+docker+Jenkins+svn搭建自动化部署平台 1. centos7 参考链接:http://www.macrozheng.com/#/reference/linux_install tips 公司服务器配置(1T机械+256固态+i7的u) 需要我们把系统,环境(java,mysql,redis,docker等)装到固态上(速度快),我们的代码放到机械上.分区情况如下图 2. centos7中安装docker1.31.1 自行百度,此处无坑 3. centos7安装配置

Windows 系统安装Docker Compose 步骤

参考 Docker Compose official 官方安装指南: https://docs.docker.com/compose/install/ 实际上到目前为止还不能直接在Windows上安装Docker Compose,所以这篇文章要讲的是如何在Windows上使用Docker Compose. 先决条件: Docker Machine 已经安装完毕. 解决方案: 将 Docker-Compose 安装在Boot2Docker虚拟机中. 1. SSH to VM: $ docker-m

Docker Compose

compose项目简介 compose项目来源于之前的Fig项目,使用python代码编写.compose项目主要用于编排部署基于docker的应用.本身与docker/swarm配合度很高. Docker Compose 是 Docker 编排服务的一部分,可以让用户在其它平台快速安装Docker,Swarm 可以让 Docker 容器在集群中高效运转,而 Compose 可以让用户在集群中部署分布式应用.简单的说,Docker Compose 属于一个"应用层"的服务,用户可以定义