Docker結(jié)合自動(dòng)化編排工具Fig的使用方法
Fig是一個(gè)基于Docker的用于快速搭建開(kāi)發(fā)環(huán)境的工具,目前Fig團(tuán)隊(duì)已經(jīng)加入Docker公司。Fig通過(guò)一個(gè)配置文件來(lái)管理多個(gè) Docker容器,非常適合組合使用多個(gè)容器進(jìn)行開(kāi)發(fā)的場(chǎng)景。Fig可以和Docker一起來(lái)構(gòu)建基于Docker的復(fù)雜應(yīng)用。本文詳細(xì)介紹了Fig的安裝以及使用。
什么是編排?
編排(譯者注:Orchestration,翻譯為編排)是指同時(shí)管理多個(gè)容器的行為。當(dāng)你剛開(kāi)始玩Docker 的時(shí)候,你只需要操作一個(gè)容器。緊接著你學(xué)習(xí)了網(wǎng)絡(luò)并得知把所有進(jìn)程都放入同一個(gè)容器中并不合適,然后不知不覺(jué)你就發(fā)現(xiàn)自己已經(jīng)建立了多容器的基礎(chǔ)架構(gòu)。 你第一次嘗試可能不會(huì)感到復(fù)雜,但是當(dāng)使用兩個(gè)或者三個(gè)容器的時(shí)候,你就會(huì)覺(jué)得很麻煩。手動(dòng)連接容器、管理卷,很快你就亂了,應(yīng)該有更好更實(shí)用的工具來(lái)做 這件事。
Fig簡(jiǎn)介
這個(gè)更實(shí)用的工具稱(chēng)為Fig。Fig是Orchard的一個(gè)產(chǎn)品并很快成為自動(dòng)化Docker容器編排一個(gè)事實(shí)標(biāo)準(zhǔn),目前Fig已經(jīng)被Docker公司收購(gòu)并成為官方支持的解決方案。
安裝Fig
Fig是一個(gè)Python Package,你可以使用以下命令來(lái)安裝:
就這么簡(jiǎn)單。如果不能工作,可以從Fig的官方文檔中了解更多信息。
使用Fig
使用Fig來(lái)編排一個(gè)基礎(chǔ)設(shè)施,你首先需要在YAML配置文件中描述它。描述語(yǔ)法很簡(jiǎn)單,和Docker有點(diǎn)類(lèi)似。
下面是Pagekit CMS的Fig配置示例:
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
這個(gè)配置文件定義了三個(gè)不同的容器。
web容器是面向web方面的容器,它基于ubermuda/pagekit鏡像構(gòu)建,你可以從GitHub上獲取ubermuda/pagekit的源碼,web容器會(huì)暴露80端口(通過(guò)ports參數(shù)),使用別名pagekit_db_1(links)連接到db容器,并且data容器的卷(volumes)也會(huì)被掛載到web容器。
從db容器中我們能看到在容器中定義環(huán)境變量是多么簡(jiǎn)單:只要使用environment配置即可。在示例中,我們?cè)谂渲梦募卸x了所有的值,但你也可以省略這些值,這樣容器會(huì)從它的宿主機(jī)中獲取。
environment:
MYSQL_ROOT_PASSWORD
所述的MYSQL_ROOT_PASSWORD環(huán)境變量被來(lái)自主機(jī)的同名環(huán)境變量填充。
最后,data容器通過(guò)volumes參數(shù)定義了即將使用的所有目錄作為共享卷目錄。
配置文件寫(xiě)完后,你只需要一個(gè)fig up命令即可啟動(dòng)你的基礎(chǔ)設(shè)施。
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)
完整的啟動(dòng)日志有點(diǎn)太長(zhǎng)了,所以我只截取了一部分。正如你所看到的,F(xiàn)ig創(chuàng)建了三個(gè)容器,dockerpagekit_db_1可以連接到dockerpagekit_web_1,正是我們想要的。
你可能還注意到有一個(gè)數(shù)據(jù)容器沒(méi)有日志線,那是因?yàn)?/bin/true 命令無(wú)法正常輸出。
現(xiàn)在你可以在另一個(gè)終端中運(yùn)行docker ps命令來(lái)檢查一切是否運(yùn)行正常,同時(shí),可是使用瀏覽器來(lái)確認(rèn)web容器是否正常啟動(dòng)。(你首先需要確認(rèn)映射端口,可以使用docker ps或docker port)。
說(shuō)明
截至本文寫(xiě)作之時(shí),F(xiàn)ig不支持遠(yuǎn)程編排,這意味著你只能在單臺(tái)主機(jī)上編排一個(gè)基礎(chǔ)設(shè)施。
相關(guān)文章

推出跨端全天候智能助手Uclaw! 統(tǒng)信UOS桌面操作系統(tǒng)V25發(fā)布
4月15日,統(tǒng)信軟件正式發(fā)布統(tǒng)信桌面操作系統(tǒng)V25,作為國(guó)產(chǎn)操作系統(tǒng)里程碑式版本,該版本在智能化、高效性、可靠性三大維度實(shí)現(xiàn)系統(tǒng)性突破,標(biāo)志著國(guó)產(chǎn)操作系統(tǒng)從“可用”全2026-04-16
哪個(gè)系統(tǒng)誰(shuí)最懂你? 2026全球十大操作系統(tǒng)排行榜
根據(jù)最新Statcounter、Statista等權(quán)威數(shù)據(jù)統(tǒng)計(jì),全球操作系統(tǒng)市場(chǎng)份額發(fā)生了微妙變化,下面我們就來(lái)看看2026全球十大操作系統(tǒng)排行榜2026-04-08
輕松玩轉(zhuǎn)虛擬機(jī)套娃! 在Hyper-V中開(kāi)啟嵌套虛擬化的技巧
有辦法在虛擬機(jī)中創(chuàng)建虛擬機(jī)嗎?答案是肯定的,在虛擬機(jī)中運(yùn)行虛擬機(jī)是可能的,我們將其稱(chēng)為嵌套虛擬化,下面我們就來(lái)看看詳細(xì)操作方法2025-02-19
龍蜥操作系統(tǒng)Anolis OS-23.x安裝配置圖解教程(保姆級(jí))
本文主要介紹了安裝和配置AnolisOS 23.2系統(tǒng),包括分區(qū)、軟件選擇、設(shè)置root密碼、網(wǎng)絡(luò)配置、主機(jī)名設(shè)置和禁用SELinux的步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2025-01-20
VMware虛擬機(jī)怎么復(fù)制/克隆/導(dǎo)出VMDK文件?
在處理文件拷貝復(fù)制到VMware虛擬機(jī)中的任務(wù)時(shí),有多種方法可以實(shí)現(xiàn)文件的高效傳輸,使用這些方法,可以在不同的操作系統(tǒng)和環(huán)境下,實(shí)現(xiàn)文件的快速、安全遷移,詳細(xì)請(qǐng)看下文2024-09-24
統(tǒng)信 UOS V20 桌面專(zhuān)業(yè)版更新發(fā)布:附更新內(nèi)容匯總
統(tǒng)信 UOS V20 桌面專(zhuān)業(yè)版(1070u1)正式發(fā)布,支持微信掃碼登錄、應(yīng)用窗口縮略圖,海量功能修復(fù),詳細(xì)請(qǐng)看下文介紹2024-08-08
怎么看自己IP地址? 不同的操作系統(tǒng)中查看路由器的IP地址的方法
在互聯(lián)網(wǎng)上進(jìn)行網(wǎng)絡(luò)連接,每個(gè)設(shè)備都有一個(gè)唯一的標(biāo)識(shí),即IP地址,本文介紹了如何在不同平臺(tái)上查找路由器的IP地址,包括Windows、Mac、iPhone、iPad、Android、Chrome OS和2024-07-16
mware虛擬機(jī)運(yùn)行速度卡慢原因分析及解決辦法
很多人在使用虛擬機(jī)系統(tǒng)的時(shí)候,經(jīng)常對(duì)虛擬機(jī)的運(yùn)行速度不甚滿(mǎn)意,甚至經(jīng)常很惱火,虛擬機(jī)速度慢有很多原因,每個(gè)人需要根據(jù)自己的情況具體分析,本文根據(jù)筆者的使用經(jīng)驗(yàn)將2024-02-21
Vmware虛擬機(jī)如何與主機(jī)之間直接復(fù)制粘貼文件?
使用虛擬機(jī)的時(shí)候,遇到了錯(cuò)誤,想要把錯(cuò)誤的代碼或是運(yùn)行情況復(fù)制粘貼到Windows的網(wǎng)上論壇區(qū)求助大神,該怎么操作呢?詳細(xì)請(qǐng)看下文介紹2024-02-21
統(tǒng)信UOS V20桌面專(zhuān)業(yè)版(1060)11月更新發(fā)布(附更新內(nèi)容匯總)
國(guó)產(chǎn)桌面操作系統(tǒng)統(tǒng)信 UOS V20 專(zhuān)業(yè)版(1060)11月更新發(fā)布,這是統(tǒng)信 UOS V20 專(zhuān)業(yè)版(1060)2023 年度最后一次更新,下面我們就來(lái)看看詳細(xì)的更新內(nèi)容2023-12-01










