企業——Docker compose的搭建

一.什麼是Docker compose?

  Compose 是 Docker 容器進行編排的工具,定義和運行多容器的應用,能夠一條命令啓動多個容器,使用Docker Compose再也不須要使用shell腳原本啓動容器。 html

  Compose 經過一個配置文件來管理多個Docker容器,在配置文件中,全部的容器經過services來定義,而後使用docker-compose腳原本啓動,中止和重啓應用,和應用中的服務以及全部依賴服務的容器,很是適合組合使用多個容器進行開發的場景nginx

  docker-compose默認的模板文件是 docker-compose.yml,其中定義的每一個服務都必須經過 image 指令指定鏡像或 build 指令(須要 Dockerfile)來自動構建。web

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

  若是使用 build 指令,在 Dockerfile 中設置的選項(例如:CMD, EXPOSE, VOLUME, ENV 等) 將會自動被獲取,無需在 docker-compose.yml 中再次設置。
使用Compose 基本上分爲三步:1.Dockerfile 定義應用的運行環境  2.docker-compose.yml 定義組成應用的各服務  3.docker-compose up 啓動整個應用shell

 

二.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-composevim

 

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: haproxyapp

      volumes:
        - ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro負載均衡

      links:
        - web1
        - web2
      ports:
        - "80:80"
      expose:
        - "80"frontend

 

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.想要刪除相應的建立好的容器,須要先關閉,再刪除

      

相關文章
相關標籤/搜索