Docker-Compose項目是Docker官方的開源項目,負責實現(xiàn)對Docker容器集群的快速編排, 并且提供了 scale (服務擴容) 的功能。
成都創(chuàng)新互聯(lián)公司主要從事成都網站制作、網站建設、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務岷縣,十年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
Docker-Compose將所管理的容器分為三層,分別是工程(project),服務(service)以及容器(container)。Docker-Compose運行目錄下的所有文件(docker-compose.yml,extends文件或環(huán)境變量文件等)組成一個工程,若無特殊指定工程名即為當前目錄名。一個工程當中可包含多個服務,每個服務中定義了容器運行的鏡像,參數,依賴。一個服務當中可包括多個容器實例,Docker-Compose并沒有解決負載均衡的問題,因此需要借助其它工具實現(xiàn)服務發(fā)現(xiàn)及負載均衡。
Docker-Compose的工程配置文件默認為docker-compose.yml,可通過環(huán)境變量COMPOSE_FILE或-f參數自定義配置文件,其定義了多個有依賴關系的服務及每個服務運行的容器。
使用一個Dockerfile模板文件,可以讓用戶很方便的定義一個單獨的應用容器。在工作中,經常會碰到需要多個容器相互配合來完成某項任務的情況。例如要實現(xiàn)一個Web項目,除了Web服務容器本身,往往還需要再加上后端的數據庫服務容器,甚至還包括負載均衡容器等。
Compose允許用戶通過一個單獨的docker-compose.yml模板文件(YAML 格式)來定義一組相關聯(lián)的應用容器為一個項目(project)。
Docker-Compose項目由Python編寫,調用Docker服務提供的API來對容器進行管理。因此,只要所操作的平臺支持Docker API,就可以在其上利用Compose來進行編排管理。
假如,你有一個java鏡像,一個MySQL鏡像,一個nginx鏡像。如果沒有docker-compose,那么每次啟動的時候,你需要敲各個容器的啟動參數,環(huán)境變量,容器命名,指定不同容器的鏈接參數等等一系列的操作,相當繁瑣。而用了docker-composer之后,你就可以把這些命令一次性寫在docker-composer.yml文件中,以后每次啟動這一整個環(huán)境(含3個容器)的時候,你只要敲一個docker-composer up命令就ok了。
先簡單理解 docker 的使用過程,它分為鏡像構建與容器啟動。
鏡像構建:即創(chuàng)建一個鏡像,它包含安裝運行所需的環(huán)境、程序代碼等。這個創(chuàng)建過程就是使用 dockerfile 來完成的。
容器啟動:容器最終運行起來是通過拉取構建好的鏡像,通過一系列運行指令(如端口映射、外部數據掛載、環(huán)境變量等)來啟動服務的。針對單個容器,這可以通過 docker run 來運行。
而如果涉及多個容器的運行(如服務編排)就可以通過docker-compose來實現(xiàn),它可以輕松的將多個容器作為 service 來運行(當然也可僅運行其中的某個),并且提供了 scale (服務擴容) 的功能。
dockerfile: 構建鏡像;
docker run: 啟動容器;
docker-compose: 啟動服務;
安裝
推薦官方安裝
curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
[root@rancher ~]# docker-compose -v
docker-compose version 1.24.1, build 4667896b
如果是二進制包方式安裝的,刪除二進制文件即可:
sudo rm /usr/local/bin/docker-compose
如果通過Python pip工具安裝的,則執(zhí)行如下命令刪除:
sudo pip uninstall docker-compose
常用命令
-f,–file FILE指定Compose模板文件,默認為docker-compose.yml,可以多次指定。
-p, 指定docker-compose的項目目錄,也就是docker-compose.yml文件的存儲目錄
-v,–version打印版本并退出
docker-compose ps? ? ? 顯示所有容器
docker-compose up?-d nginx? ?構建并在后臺啟動nginx容器,不加nginx,啟動所有服務,下面的等同。
docker-compose run? ? 允許為你的應用程序運行一次性命令
docker-compose start?nginx? ?啟動nginx容器
docker-compose restart?nginx? ?重啟nginx容器 (注意是編排文件中的service)
docker-compose stop? nginx? 停止nginx容器
docker-compose pause nginx? ? 暫停nginx容器
docker-compose unpause nginx? ? 恢復nginx容器
docker-compose kill nginx? ? 強制停止nginx容器
docker-compose rm nginx? ? 刪除nginx容器(刪除前必須關閉容器)
docker-compose exec nginx bash????????????登錄到nginx容器中
docker-compose down -v? ?停止并刪除容器、網絡、映像和卷,-v(--volumes)刪除容器的數據卷
docker-compose logs -f? --tail 50 nginx? ? 查看nginx的實時日志,只看最后50行。
docker-compose events --json nginx? ? ? 以json的形式輸出nginx的docker日志
docker-compose config??-q? ? 驗證(docker-compose.yml)文件配置,當配置正確時,不輸出任何內容,當文件配置錯誤,輸出錯誤信息。
docker-compose build nginx? ? ? ? 構建鏡像
docker-compose build --no-cache nginx???不帶緩存的構建。
docker-compose scale??? ?設置服務的容器數量
docker-compose pull?? ? 拉取服務鏡像
docker-compose push? ? 推送服務鏡像
網頁標題:docker-compose
鏈接分享:http://www.chinadenli.net/article14/ieoede.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供移動網站建設、標簽優(yōu)化、網站維護、服務器托管、做網站、營銷型網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)