自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用Docker編排工具Fig,快速搭建開發(fā)環(huán)境

云計算
Fig是一個基于Docker的用于快速搭建開發(fā)環(huán)境的工具,目前Fig團隊已經(jīng)加入Docker公司。Fig通過一個配置文件來管理多個Docker容器,非常適合組合使用多個容器進行開發(fā)的場景。Fig可以和Docker一起來構(gòu)建基于Docker的復(fù)雜應(yīng)用。本文詳細介紹了Fig的安裝以及使用。

[[125639]]

什么是編排?

編排(譯者注:Orchestration,翻譯為編排)是指同時管理多個容器的行為。當(dāng)你剛開始玩Docker的時候,你只需要操作一個容器。緊接著你學(xué)習(xí)了網(wǎng)絡(luò)并得知把所有進程都放入同一個容器中并不合適,然后不知不覺你就發(fā)現(xiàn)自己已經(jīng)建立了多容器的基礎(chǔ)架構(gòu)。你***次嘗試可能不會感到復(fù)雜,但是當(dāng)使用兩個或者三個容器的時候,你就會覺得很麻煩。手動連接容器、管理卷,很快你就亂了,應(yīng)該有更好更實用的工具來做這件事。

Fig簡介

這個更實用的工具稱為Fig。Fig是Orchard的一個產(chǎn)品并很快成為自動化Docker容器編排一個事實標(biāo)準(zhǔn),目前Fig已經(jīng)被Docker公司收購并成為官方支持的解決方案。

安裝Fig

Fig是一個Python Package,你可以使用以下命令來安裝:

  1. $ sudo pip install -U fig 

就這么簡單。如果不能工作,可以從Fig的官方文檔中了解更多信息。

使用Fig

使用Fig來編排一個基礎(chǔ)設(shè)施,你首先需要在YAML配置文件中描述它。描述語法很簡單,和Docker有點類似。

下面是Pagekit CMS的Fig配置示例:

  1. web: 
  2. image: ubermuda/pagekit 
  3. ports: 
  4. 80 
  5. links: 
  6. - db:pagekit_db_1 
  7. volumes_from: 
  8. - data 
  9. db: 
  10. image: orchardup/mysql 
  11. environment: 
  12. MYSQL_ROOT_PASSWORD: changethis 
  13. MYSQL_DATABASE: pagekit 
  14. data: 
  15. image: busybox 
  16. command: /bin/true 
  17. volumes: 
  18. - /pagekit/storage 
  19. - /pagekit/app/cache 

這個配置文件定義了三個不同的容器。

web容器是面向web方面的容器,它基于ubermuda/pagekit鏡像構(gòu)建,你可以從GitHub上獲取ubermuda/pagekit的源碼,web容器會暴露80端口(通過ports參數(shù)),使用別名pagekit_db_1(links)連接到db容器,并且data容器的卷(volumes)也會被掛載到web容器。

從db容器中我們能看到在容器中定義環(huán)境變量是多么簡單:只要使用environment配置即可。在示例中,我們在配置文件中定義了所有的值,但你也可以省略這些值,這樣容器會從它的宿主機中獲取。

  1. db: 
  2. environment: 
  3. MYSQL_ROOT_PASSWORD 

所述的MYSQL_ROOT_PASSWORD環(huán)境變量被來自主機的同名環(huán)境變量填充。

***,data容器通過volumes參數(shù)定義了即將使用的所有目錄作為共享卷目錄。

配置文件寫完后,你只需要一個fig up命令即可啟動你的基礎(chǔ)設(shè)施。

  1. $ fig up 
  2. Creating dockerpagekit_db_1... 
  3. ... 
  4. Creating dockerpagekit_data_1... 
  5. Creating dockerpagekit_web_1... 
  6. ... 
  7. Attaching to dockerpagekit_db_1, dockerpagekit_web_1 
  8. ... 
  9. db_1 | 141110 4:14:02 [Note] /usr/sbin/mysqld: ready for connections. 
  10. db_1 | Version: '5.5.38-0ubuntu0.12.04.1-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu) 
  11. ... 
  12. web_1 | 2014-11-10 04:15:20,750 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 
  13. 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) 

完整的啟動日志有點太長了,所以我只截取了一部分。正如你所看到的,F(xiàn)ig創(chuàng)建了三個容器,dockerpagekit_db_1可以連接到dockerpagekit_web_1,正是我們想要的。

你可能還注意到有一個數(shù)據(jù)容器沒有日志線,那是因為 /bin/true 命令無法正常輸出。

現(xiàn)在你可以在另一個終端中運行docker ps命令來檢查一切是否運行正常,同時,可是使用瀏覽器來確認web容器是否正常啟動。(你首先需要確認映射端口,可以使用docker ps或docker port)。

說明

截至本文寫作之時,F(xiàn)ig不支持遠程編排,這意味著你只能在單臺主機上編排一個基礎(chǔ)設(shè)施。

本文出自:http://dockerone.com/article/119

責(zé)任編輯:Ophira 來源: dockerone
相關(guān)推薦

2016-09-08 16:04:59

JavaDocker前端

2016-11-03 09:49:04

2012-02-16 10:00:59

2024-10-25 15:25:42

2014-02-26 11:11:05

AndroidStudio開發(fā)環(huán)境

2022-06-24 10:11:15

DockerLinux

2023-11-16 08:01:31

2014-08-07 10:25:15

DockerPython

2023-11-02 08:45:07

2015-12-30 13:58:00

DockerGit開發(fā)環(huán)境

2010-06-04 16:17:02

2021-07-16 09:51:21

kubernetes環(huán)境容器

2020-04-01 11:11:35

Hadoop運行環(huán)境分布式

2023-08-03 07:35:10

kubernetes云原生

2021-05-07 09:31:33

KindK8s Operator

2013-07-23 06:11:44

Android開發(fā)學(xué)習(xí)Android開發(fā)環(huán)境Java

2016-03-02 09:50:09

docker測試環(huán)境

2024-07-12 14:54:48

2015-03-04 11:13:03

DockerDocker編排工具Docker可擴展性

2023-09-04 15:09:03

容器編排工具KubernetesDocker
點贊
收藏

51CTO技術(shù)棧公眾號