如何使用Docker-Compose命令
譯文【51CTO.com快譯】你可以通過多種方式來管理和部署Docker容器。你可以直接使用Docker命令、借助眾多GUI工具中的一款(基于Web的工具和面向桌面客戶端的工具),也可以選擇走docker-compose這條路。
Docker Compose是什么東東?Docker Compose用于創(chuàng)建容器及容器之間的連接。然而,docker-compose命令的用途實(shí)際上廣泛得多。使用此命令可以:構(gòu)建映像、擴(kuò)展容器、修復(fù)容器、查看容器的輸出、列出容器的公共端口等等。
那么如何使用docker-compose呢?不妨一探究竟。
如何安裝Docker Compose?
即使你已經(jīng)在服務(wù)器上安裝了Docker,也很可能沒有安裝Docker Compose。要安裝Docker Compose,執(zhí)行以下命令:
- sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname
- -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- sudo chmod +x /usr/local/bin/docker-compose
使用以下命令驗(yàn)證安裝:
- docker-compose version
你應(yīng)該會(huì)看到幾個(gè)應(yīng)用程序的版本號(hào)(圖A)。
圖A. Docker Compose已安裝并準(zhǔn)備就緒
Docker文件
為了部署容器,Docker Compose依賴docker-compose.yml文件,該文件用于將Docker容器部署到你的特定環(huán)境。假設(shè)你想部署Wordpress容器。先使用以下命令創(chuàng)建一個(gè)新目錄:
- mkdir ~/wordpressbuild
使用以下命令切換到該新目錄:
- cd ~/wordpressbuild
使用以下命令創(chuàng)建新的Docker Compose文件:
- nano docker-compose.yml
將以下內(nèi)容(取自官方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: {}
保存并關(guān)閉該文件。
現(xiàn)在我們使用以下命令構(gòu)建項(xiàng)目并在分離模式下部署容器:
- docker-compose up –d
該命令將下載所有必需的映像(本例中是MySQL和Wordpress),然后在端口8000上部署該服務(wù)??梢詫eb瀏覽器指向http://SERVER_IP:8000(其中SERVER_IP是托管服務(wù)器的IP地址),查看Wordpress安裝頁(yè)面(圖B)。
如何檢查你的部署?
假設(shè)你想檢查來自部署的日志。為此,執(zhí)行以下命令:
- docker-compose logs
你應(yīng)該會(huì)看到來自上一次部署的大量信息(圖C)。
圖C. 查看來自Wordpress的docker-compose部署的日志
該命令將輸出大量信息(如果你部署了眾多容器更是如此)。相反,你可以指定要查看日志文件的服務(wù)。如何知道使用哪個(gè)服務(wù)名稱?檢查docker-compose.yml文件。在本文示例中,我們有兩個(gè)服務(wù):
- db:數(shù)據(jù)庫(kù)
- wordpress:Wordpress容器
因此,如果你只想查看wordpress服務(wù)的日志,那么該命令將是:
- docker-compose logs wordpress
你也可以查看日志的輸出(就像使用tail命令那樣),如下所示:
- docker-compose logs -f wordpress
只要wordpress服務(wù)的新信息記入日志,就會(huì)出現(xiàn)在終端窗口中(圖D)。
如果你忘了部署中使用哪些端口,該怎么辦?可以查看docker-compose.yml文件,也可以將port選項(xiàng)與docker-compose命令一起使用。你要知道服務(wù)的內(nèi)部命令。比如說,Wordpress默認(rèn)使用端口80,因此我們知道這是內(nèi)部端口。但我們將什么分配為面向網(wǎng)絡(luò)的端口?用以下命令查清楚:
- docker-compose port wordpress 80
該命令的輸出將顯示我們將內(nèi)部端口80映射到外部端口8000(圖E)。
如果你記不得已部署的容器,可以執(zhí)行命令:
- docker-compose ps
輸出會(huì)列出已部署的每個(gè)容器(圖F)。
剛剛開始
這應(yīng)該讓你可以開始領(lǐng)略Docker Compose的強(qiáng)大功能。我們會(huì)在下一篇文章中細(xì)述docker-compose.yml文件,弄清楚如何構(gòu)建自己的容器。
原文標(biāo)題:How to use the docker-compose command,作者:Jack Wallen
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】