Docker 編排工具 Fig 介紹
【編者的話】Fig是一個基於Docker的用於快速搭建開發環境的工具,目前Fig團隊已經加入Docker公司。Fig透過一個配置檔案來管理多個 Docker容器,非常適合組合使用多個容器進行開發的場景。Fig可以和Docker一起來構建基於Docker的複雜應用。本文詳細介紹了Fig的安裝以及使用。
什麼是編排?
編排(譯者注:Orchestration,翻譯為編排)是指同時管理多個容器的行為。當你剛開始玩Docker 的時候,你只需要操作一個容器。緊接著你學習了網路並得知把所有程式都放入同一個容器中並不合適,然後不知不覺你就發現自己已經建立了多容器的基礎架構。 你第一次嘗試可能不會感到複雜,但是當使用兩個或者三個容器的時候,你就會覺得很麻煩。手動連線容器、管理卷,很快你就亂了,應該有更好更實用的工具來做 這件事。
Fig簡介
這個更實用的工具稱為Fig。Fig是Orchard的一個產品並很快成為自動化Docker容器編排一個事實標準,目前Fig已經被Docker公司收購併成為官方支援的解決方案。
安裝Fig
Fig是一個Python Package,你可以使用以下命令來安裝:
$ sudo pip install -U fig
就這麼簡單。如果不能工作,可以從Fig的官方文件中瞭解更多資訊。
使用Fig
使用Fig來編排一個基礎設施,你首先需要在YAML配置檔案中描述它。描述語法很簡單,和Docker有點類似。
下面是Pagekit CMS的Fig配置示例:
web: image: ubermuda/pagekit ports: - 80 links: - db:pagekit_db_1 volumes_from: - data db: image: orchardup/mysql environment: MYSQL_ROOT_PASSWORD: changethis MYSQL_DATABASE: pagekit data: image: busybox command: /bin/true volumes: - /pagekit/storage - /pagekit/app/cache
這個配置檔案定義了三個不同的容器。
web容器是面向web方面的容器,它基於ubermuda/pagekit映象構建,你可以從GitHub上獲取ubermuda/pagekit的原始碼,web容器會暴露80埠(透過ports引數),使用別名pagekit_db_1(links)連線到db容器,並且data容器的卷(volumes)也會被掛載到web容器。
從db容器中我們能看到在容器中定義環境變數是多麼簡單:只要使用environment配置即可。在示例中,我們在配置檔案中定義了所有的值,但你也可以省略這些值,這樣容器會從它的宿主機中獲取。
db: environment: MYSQL_ROOT_PASSWORD
所述的MYSQL_ROOT_PASSWORD環境變數被來自主機的同名環境變數填充。
最後,data容器透過volumes引數定義了即將使用的所有目錄作為共享卷目錄。
配置檔案寫完後,你只需要一個fig up命令即可啟動你的基礎設施。
$ fig up Creating dockerpagekit_db_1... ... Creating dockerpagekit_data_1... Creating dockerpagekit_web_1... ... Attaching to dockerpagekit_db_1, dockerpagekit_web_1 ... db_1 | 141110 4:14:02 [Note] /usr/sbin/mysqld: ready for connections. db_1 | Version: '5.5.38-0ubuntu0.12.04.1-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu) ... web_1 | 2014-11-10 04:15:20,750 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) web_1 | 2014-11-10 04:15:20,750 INFO success: php5-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
完整的啟動日誌有點太長了,所以我只擷取了一部分。正如你所看到的,Fig建立了三個容器,dockerpagekit_db_1可以連線到dockerpagekit_web_1,正是我們想要的。
你可能還注意到有一個資料容器沒有日誌線,那是因為 /bin/true 命令無法正常輸出。
現在你可以在另一個終端中執行docker ps命令來檢查一切是否執行正常,同時,可是使用瀏覽器來確認web容器是否正常啟動。(你首先需要確認對映埠,可以使用docker ps或docker port)。
說明
截至本文寫作之時,Fig不支援遠端編排,這意味著你只能在單臺主機上編排一個基礎設施。
相關文章
- Docker批次容器編排的實現介紹Docker
- 流程編排、如此簡單-通用流程編排元件JDEasyFlow介紹元件
- Docker介紹 安裝 常用工具Docker
- Docker批量容器編排Docker
- docker 介紹Docker
- Docker介紹Docker
- Docker 容器編排利器 Docker ComposeDocker
- Docker_Docker服務編排6Docker
- 原創圖書流程介紹:編排校階段
- Docker編排利器DockerComposeDocker
- Docker compose 編排LNPDocker
- docker-compose 編排Docker
- 42_Docker容器編排Docker
- Docker_Docker介紹1Docker
- docker 基本介紹Docker
- Docker 介紹 一Docker
- docker 命令介紹Docker
- 介紹一款docker管理工具——portainerDockerAI
- Can匯流排介紹
- Docker 多容器編排Swarm(六)DockerSwarm
- 1.07 容器編排docker SwarmDockerSwarm
- 從docker介紹及其簡介Docker
- Docker學習(十)Docker容器編排 Docker-composDocker
- docker swarm部署介紹DockerSwarm
- Docker Volume介紹Docker
- docker 引數介紹Docker
- docker介紹、安裝Docker
- [Docker系列·13]使用fig啟動容器Docker
- Docker容器技術與Docker介紹Docker
- cpio工具介紹
- Docker基本介紹及使用Docker
- Docker(二):Dockerfile 使用介紹Docker
- docker之Dockerfile指令介紹Docker
- Docker 涉密資訊管理介紹Docker
- Docker 網路基礎介紹Docker
- Docker內部元件介紹Docker元件
- Docker - 03 編排容器 Docker Compose 指令速查表Docker
- Kubernetes – 容器編排簡介