Docker學習(十)Docker容器編排 Docker-compos
![此處輸入圖片的描述][1]
容器編排是什麼
應用一般由單獨容器化的元件組成,須按照一定順序在網路級別進行組織,以使其能夠按照計劃執行,這種對多個容器進行組織的流程稱為容器編排,它主要是對容器之間的依賴關係進行編排
Docke-compose
docker官方提供的工具,強調單機多容器的編排,能力相對有限,只能在一臺宿主機上對容器編排,對於大規模叢集環境中,多臺機器無法支援,在windows, mac 安裝完docker後預設提供docker-compose,但是在windows server , Linux中預設是不提供的,需要自行安裝
示例場景
在一個簡單的應用部署中,如圖
![此處輸入圖片的描述][2]
需要用到 nginx , tomcat , mysql 三個元件,而且這每個元件在部署的時候是有依賴關係的,比如要先有mysql,因為tomcat中的應用需要使用到mysql,最後需要安裝nginx,對tocmcat做負載均衡實現叢集
順序如下:
mysql -> tomcat -> nginx
如果是人工處理的話,雖然簡單,但是需要花費長時間, 現在有了docker-compose,就可以對容器進行編排,透過一個yml檔案來維護容器編排的邏輯,再透過docker-compose命令對配置檔案進行編譯解析,就可以實現一個應用的部署
接下來我們使用docker-compose 部署一個開源部落格wordpress
示例一 搭建wordpress開源部落格
整個過程比較簡單
安裝docker-compose
-
獲取並自動安裝docker-comppose
sudo curl -L "(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
預設安裝目錄是/usr/local/bin/docker-compose
-
資料夾授權
sudo chmod +x /usr/local/bin/docker-compose
因為要連線國外網站,下載會很慢,可能會被拒絕,多試幾次就好
-
檢視安裝的版本
docker-compose -version
![此處輸入圖片的描述][3]
安裝部署開源部落格wordpress
建立目錄mkdir -p /usr/local/docker/wordpress
- 編寫docker-compose 配置檔案
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
-
配置檔案解讀
-
解析配置檔案並安裝
docker-compose up -d
- up 解析執行
- -d 後臺執行
![此處輸入圖片的描述][4]
- 執行過程
Creating network "wordpress_default" with the default driver
Creating volume "wordpress_db_data" with default driver
Pulling db (mysql:5.7)...
5.7: Pulling from library/mysql
......
Status: Downloaded newer image for mysql:5.7
Pulling wordpress (wordpress:latest)...
latest: Pulling from library/wordpress
......
Creating wordpress_db_1 ... done
Recreating wordpress_wordpress_1 ... done
- 檢視建立的應用
docker ps
![此處輸入圖片的描述][5]wordpress_wordpress_1
部落格的web應用wordpress_db_1
部落格的mysql5.7容器
初始化wordpress
從上面程式看到WEB應用對外暴露的是8000埠
對部落格進行一下初始化
![此處輸入圖片的描述][6]
![此處輸入圖片的描述][7]
![此處輸入圖片的描述][8]
![此處輸入圖片的描述][9]
![此處輸入圖片的描述][10]
到這裡都是個應用上的一些流程,有興趣的可以體驗一下這個部落格,很不錯的
成果展示
到這裡我們已經完成了開源部落格的部署, 整個過程很簡單,整個過程是由docker-compose 這個容器編排工具完成的,透過一個yml配置檔案 ,就完成了一個應用的部署,很大節省了運維人員工作量,整個應用的維護,只需要一個yml配置檔案
參考資料
[docker-compose-install][11]
[QuickStart : compose and wordpress][12]
寫在最後
透過docker-compose部署自己的應用時裡面有很多東西,本文的例子一個很簡單,實際工作中一定不止於此,docker-compose檔案中的內容有很多學問,可以到docker官網上看一下,以mysql為例,如果指定初始化資料庫的指令碼,root使用者的密碼如何指定等,這塊需要用到mysql容器的一些環境變數,這塊內容可以參考[docker-mysql][13]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/132/viewspace-2824795/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Docker 容器編排利器 Docker ComposeDocker
- Docker批量容器編排Docker
- 1.07 容器編排docker SwarmDockerSwarm
- 42_Docker容器編排Docker
- Docker 多容器編排Swarm(六)DockerSwarm
- Docker - 03 編排容器 Docker Compose 指令速查表Docker
- Docker 容器學習Docker
- docker學習5:Docker 容器連線Docker
- docker學習3:Docker容器使用Docker
- Dockerfile指令與Docker-compose容器編排-搭建docker私有倉庫Docker
- Docker容器編排技術解析與實踐Docker
- Docker批次容器編排的實現介紹Docker
- docker容器編排原來這麼絲滑~Docker
- 【Docker 系列】docker 學習九,Compose 內容編排官網初步體驗Docker
- [Docker 系列]docker 學習九,Compose 內容編排官網初步體驗Docker
- [Docker 系列]docker 學習十,Compose 編寫規則及wp 實戰Docker
- Docker知識進階與容器編排技術Docker
- [Docker 系列]docker 學習六,資料卷容器Docker
- [Docker 系列]docker 學習 五,容器資料卷Docker
- Dockerfile與docker-compose容器編排(Docker系列第3章,共3章)Docker
- Docker_Docker服務編排6Docker
- 實戰Docker容器排程Docker
- 容器引擎Docker和容器編排kubernetes如何優雅的收集容器日誌Docker
- Docker編排利器DockerComposeDocker
- docker-compose 編排Docker
- Docker compose 編排LNPDocker
- Docker容器學習與分享12Docker
- [Docker 系列]docker 學習七,DockerFile 編寫和實戰Docker
- 【Docker 系列】docker 學習七,DockerFile 編寫和實戰Docker
- Docker學習之搭建MySql容器服務DockerMySql
- 容器Docker學習系列五~命令學習history,save, importDockerImport
- 容器Docker學習系列五~命令學習history,save,importDockerImport
- Docker 與 K8S學習筆記(十 二)容器間資料共享DockerK8S筆記
- Docker學習筆記:映象、容器、資料卷Docker筆記
- 【Docker 系列】docker 學習 三Docker
- [Docker 系列]docker 學習 三Docker
- Docker最全教程——資料庫容器化(十)Docker資料庫
- [第十篇]——Docker 容器連線Docker