Docker從零到集群(2/3)—Machine,Compose,Swarm

系列目錄

Docker從零到集群(1/3)—Machine,Compose,Swarm
Docker從零到集群(2/3)—Machine,Compose,Swarm
Docker從零到集群(3/3)—Machine,Compose,Swarm

前言

通過前一篇文章Docker基礎概念已經說明了構建一個Docker集群系統(tǒng)的思路,那么就從本文開始實踐如何一步步實現(xiàn)Docker單機應用系統(tǒng)道伟,而下一篇文章會介紹Docker集群系統(tǒng)的搭建

準備

  • 本文實踐環(huán)境為Mac OS X 10.13.2(High Sierra)
    準備好VPN努释,否則相關文檔和工具的訪問會非常慢玷禽,甚至無法訪問

  • 安裝Docker For Mac
    Docker官方網站下載以舒,dmg文件喘蟆,下載后解壓拖拽放入應用程序文件夾即可
    Docker For Mac 替代了Docker Tools樊诺,集成了Docker開發(fā)所有的工具環(huán)境

  • 安裝VirtualBox虛擬機波桩,用于Docker Machine創(chuàng)建虛擬機
    Mac OS X默認是沒有虛擬機的眠屎,所以要使用Docker Machine剔交,需要事先安裝好VirtualBox,這在Docker的官方文檔上有相關說明

步驟

一改衩、Docker Machine

  1. 在已經安裝完成VirtualBox的情況下岖常,使用Dokcer Machine創(chuàng)建虛擬機,命令如下:
    docker-machine create m1
    本文所有命令都會以能完成功能為基礎的最小原則葫督,以方便初學者學習腥椒,更多命令參數幫助可以通過-h/--help來獲取,還可通過查閱官方文檔進一步學習
    以上命令中候衍,會默認 -d/--driver virtualbox 參數笼蛛,意思是使用virtualbox的驅動來創(chuàng)建一臺虛擬機,這臺虛擬機會帶有Docker運行環(huán)境蛉鹿,我們可以在這臺虛擬機快速構建我們的Docker單機應用滨砍,包括創(chuàng)建鏡像,上傳鏡像妖异,和運行容器

  2. 查看已經創(chuàng)建好的虛擬機
    docker-machine ls

  3. 進入創(chuàng)建好的虛擬機m1
    docker-machine ssh m1
    就這么簡單惋戏,我們就進入到了剛才創(chuàng)建好的虛擬機中,和真實宿主機器的環(huán)境一樣他膳,我們可以通過Docker命令來構建Docker鏡像了
    需要注意的是响逢,以上3個步驟為Docker Machine的基本使用,如果不想使用虛擬機棕孙,那么在宿主機上安裝好Docker環(huán)境后舔亭,可以直接在宿主機上操作,以上3個步驟省略

二蟀俊、Docker File

  1. 在原應用文件夾下編寫Dockerfile文件钦铺,指定部署序列,Node應用例子如下:
# FROM node
FROM mhart/alpine-node:latest
#創(chuàng)建應用目錄
RUN mkdir -p /usr/node/autodeploy
#設置工作目錄
WORKDIR /usr/node/autodeploy
#復制所有文件到工作目錄
COPY . /usr/node/autodeploy
#編譯運行node項目
RUN npm install
#運行命令
CMD ["npm", "start"]

Dockerfile文件即指定你的應用所需部署環(huán)境肢预,所需配置等等矛洞,這是Docker容器部署中最為核心的工作,持久化構建腳本

三烫映、Docker Compose

  1. 拷貝應用代碼到虛擬機中(如果非虛擬機環(huán)境沼本,則此步驟可省略)
    docker-machine scp -r 源碼目錄 m1:目的路徑

  2. 編寫docker-compose.yml文件(具體內容可查詢官網噩峦,后續(xù)也會單獨寫一篇文章講解)
    以下docker-compose.yml文件配置了兩個服務,分別是一個nginx服務器和一個node服務抽兆,都指定了構建目錄壕探,也就是說會指定構建目錄下的Dockerfile,分別構建出兩個鏡像郊丛,然后還配置了nginx與node應用連接李请,這樣在nginx中,就可以通過域名node訪問

version: '3'
services:
  nginx:
    build: ./nginx
    ports:
      - "80:80"
    volumes:
      - /Users/cheney/Documents/docker/nginx/log:/var/log/nginx
      #   - /Users/cheney/Documents/docker/nginx/nginx.conf:/etc/nginx/nginx.conf
      #   - /Users/cheney/Documents/docker/nginx/conf.d:/etc/nginx/conf.d
      #   - /Users/cheney/Documents/docker/nginx/html:/usr/share/nginx/html
    links:
      - autodeploy
  
  autodeploy:
    build: ./autodeploy
    expose:
      - "10001"
  1. 構建鏡像和運行容器
    docker-compose up
    通過這個命令厉熟,會執(zhí)行當前目錄下的docker-compose.yml文件导盅,根據里面的配置構建鏡像,啟動容器揍瑟,這樣白翻,一個單機docker應用就完成了

四、訪問測試

【在瀏覽器輸入】http://m1的IP地址
【如不使用docker-machine虛擬機绢片,直接訪問本地】http://localhost
這樣就可以看到返回結果了滤馍,在本例中,nginx和node的代碼就省略了底循,訪問原理很簡單
nginx容器監(jiān)聽了80端口巢株,然后轉發(fā)給http://node:10001, 因為node容器監(jiān)聽10001端口熙涤,所以node容器就會收到請求阁苞,然后express應用路由攔截,返回數據
本例中祠挫,為了清晰直接那槽,使用nginx和node命名,實際中應用名稱可以mynginx,mynode等

總結

通過以上步驟等舔,我們就能完成docker單機應用環(huán)境的部署搭建骚灸,因為每個人具體應用是不同的,所以本文省略了具體應用的代碼慌植,只展示最關鍵的docker命令控制甚牲。通過docker-compose.yml配置docker鏡像和容器的構建啟動,極大的省略了用繁瑣的docker命令一個個構建鏡像和啟動容器

后續(xù)文章會介紹如何使用Docker Swarm進一步將我們的單機應用拓展成為集群涤浇,謝謝閱讀

作者:CheneyXu
關于:XServer官網

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末鳖藕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子只锭,更是在濱河造成了極大的恐慌,老刑警劉巖院尔,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜻展,死亡現(xiàn)場離奇詭異喉誊,居然都是意外死亡,警方通過查閱死者的電腦和手機纵顾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門伍茄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人施逾,你說我怎么就攤上這事敷矫。” “怎么了汉额?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵曹仗,是天一觀的道長。 經常有香客問我蠕搜,道長怎茫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任妓灌,我火速辦了婚禮轨蛤,結果婚禮上,老公的妹妹穿的比我還像新娘虫埂。我一直安慰自己祥山,他們只是感情好,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布掉伏。 她就那樣靜靜地躺著枪蘑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪岖免。 梳的紋絲不亂的頭發(fā)上岳颇,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音颅湘,去河邊找鬼话侧。 笑死,一個胖子當著我的面吹牛闯参,可吹牛的內容都是我干的瞻鹏。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鹿寨,長吁一口氣:“原來是場噩夢啊……” “哼新博!你這毒婦竟也來了?” 一聲冷哼從身側響起脚草,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤赫悄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體埂淮,經...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡姑隅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了倔撞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讲仰。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖痪蝇,靈堂內的尸體忽然破棺而出鄙陡,到底是詐尸還是另有隱情,我是刑警寧澤躏啰,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布趁矾,位于F島的核電站,受9級特大地震影響丙唧,放射性物質發(fā)生泄漏愈魏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一想际、第九天 我趴在偏房一處隱蔽的房頂上張望培漏。 院中可真熱鬧,春花似錦胡本、人聲如沸牌柄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽珊佣。三九已至,卻和暖如春披粟,著一層夾襖步出監(jiān)牢的瞬間咒锻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工守屉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惑艇,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓拇泛,卻偏偏與公主長得像滨巴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子俺叭,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內容