1. 程式人生 > >『中級篇』Docker Compose到底是什麽(38)

『中級篇』Docker Compose到底是什麽(38)

vagrant 處理 單機 ron 存儲 volumes 限制 今天 tab

>原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
>原文鏈接地址:『中級篇』Docker Compose到底是什麽(38)

多容器的APP太惡心了

美團,阿裏,京東一個項目很多個容器,如果擴展那不是運維人員基本沒辦法幹了,幾千個幾萬個。

  • 要從Dockerfile build image 或者去dockerhub拉取image
  • 要創建多個container
  • 要管理這些container(啟動停止刪除)
DOcker Compose "批處理"

通過文本的方式,把要處理的容器按照順序執行,如果是多容器也就是通過一條命令就搞定了

技術分享圖片

Docker Compose 了解它

https://docs.docker.com/compose/overview/ ,version版本統一用3,其實3是兼容2的,version版本1 就不要考慮了已經廢棄了,一定要往前看。3和2的最大區別是3比2強大,好像是廢話,3支持多機和單機,2僅支持單機。

  • Docker Compose 是一個工具,命令行工具。
  • 這個工具可以通過yml文件定義多容器的docker應用
  • 通過一條命令就可以根據yml文件的定義去創建或者管理這多個容器

技術分享圖片

技術分享圖片

docker-compose.yml 介紹
  • services
    1. 一個service代表一個container,這個container可以從dockerhub的image來創建,或者從本地的Dockerfile build出來的image來創建。
    2. service的啟動類似docker run,我們可以給其指定network和volme,所以可以給service指定network和volume的引用

技術分享圖片

技術分享圖片

  • networks
    技術分享圖片

  • volumes
    技術分享圖片
docker-compose 上例子

源碼地址:https://github.com/limingios/docker中的No.4

  • 訪問路徑
    技術分享圖片

  • docker-compose 源碼實例
    
    #docker-Compse的版本
    version: ‘3‘

#建立2個service 一個wordpress 一個 mysql
services:

wordpress:
image: wordpress
#端口映射80 映射到8080端口

ports:

  • 8080:80
    #環境變量2個
    environment:
    WORDPRESS_DB_HOST: mysql
    WORDPRESS_DB_PASSWORD: root
    networks:
  • my-bridge

    mysql:
    image: mysql
    environment:
    MYSQL_ROOT_PASSWORD: root
    MYSQL_DATABASE: wordpress
    volumes:

  • mysql-data:/var/lib/mysql
    networks:
  • my-bridge
    #建立一個volumes
    volumes:
    mysql-data:
    #建立一個networks
    networks:
    my-bridge:
    driver: bridge

PS:上節通過image 和container的方式創建wordpress,一般麻煩吧還不算特別麻煩,但是相比今天的docker-compose.yml來說,還是docker-compose.yml文件更方便些吧。


往期精彩
  1. docker導學(一)
  2. 容器的技術概述(二)
  3. docker的魅力初體驗-5分鐘安裝wordpress不走彎路(三)
  4. docker官網介紹(四)
  5. 如何在mac上安裝docker(五)
  6. 如何在window上安裝docker(六)
  7. 如何在mac上通過vagrant安裝虛擬機(七)
  8. 如何在window上通過vagrant安裝虛擬機(八)
  9. docker-Machine的本地使用(九)
  10. docker-Machine的本地使用(十)
  11. 在linux/mac下通過Docker-Machine在阿裏雲上的使用(11)
  12. docker架構和底層技術(12)
  13. docker Image概述(13)
  14. 手動建立一個base Image(14)
  15. 什麽是Container(15)
  16. 構建自己的Docker鏡像(16)
  17. Dockerfile詳解(17)
  18. 鏡像的發布(18)
  19. Dockerfile實戰(19)
  20. 容器的操作(20)
  21. Dockerfile實戰CMD和ENTRTYPOINT的配合(21)
  22. 容器的資源限制(22)
  23. docker網絡(23)
  24. docker學習必會網絡基礎(24)
  25. Linux網絡命名空間(25)
  26. Docker Bridge詳解(26)
  27. 容器之間的Link(27)
  28. 容器的端口映射(28)
  29. 容器網絡之host和none(29)
  30. 多容器復雜應用的部署(30)
  31. overlay網絡和etcd實現多機的容器通信(31)
  32. docker的數據持久化存儲和數據共享(32)
  33. windows下vagrant 通過SecureCRT連接centos7(33)
  34. 數據持久化之Data Volume(34)
  35. 數據持久化之bind Mounting(35)
  36. docker 使用bind Mounting實戰(36)
  37. docker容器安裝wordpress(37)
    技術分享圖片

『中級篇』Docker Compose到底是什麽(38)