你可以通過多種方式來管理和部署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)證安裝:
你應(yīng)該會(huì)看到幾個(gè)應(yīng)用程序的版本號(hào)(圖A)。
![](/d/20211016/1fe819828df6dbef6f05bb3fc25bf0c7.gif)
圖A. Docker Compose已安裝并準(zhǔn)備就緒
Docker文件
為了部署容器,Docker Compose依賴docker-compose.yml文件,該文件用于將Docker容器部署到你的特定環(huán)境。假設(shè)你想部署Wordpress容器。先使用以下命令創(chuàng)建一個(gè)新目錄:
使用以下命令切換到該新目錄:
使用以下命令創(chuàng)建新的Docker Compose文件:
將以下內(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)目并在分離模式下部署容器:
該命令將下載所有必需的映像(本例中是MySQL和Wordpress),然后在端口8000上部署該服務(wù)??梢詫eb瀏覽器指向http://SERVER_IP:8000(其中SERVER_IP是托管服務(wù)器的IP地址),查看Wordpress安裝頁面(圖B)。
![](/d/20211016/7cbe37759b4919efabe5587703bd3d64.gif)
圖B. Wordpress安裝程序
如何檢查你的部署?
假設(shè)你想檢查來自部署的日志。為此,執(zhí)行以下命令:
你應(yīng)該會(huì)看到來自上一次部署的大量信息(圖C)。
![](/d/20211016/7adbc64c7ae127ee2afcaa060a608a8e.gif)
圖C. 查看來自Wordpress的docker-compose部署的日志
該命令將輸出大量信息(如果你部署了眾多容器更是如此)。相反,你可以指定要查看日志文件的服務(wù)。如何知道使用哪個(gè)服務(wù)名稱?檢查docker-compose.yml文件。在本文示例中,我們有兩個(gè)服務(wù):
- db:數(shù)據(jù)庫
- wordpress:Wordpress容器
因此,如果你只想查看wordpress服務(wù)的日志,那么該命令將是:
docker-compose logs wordpress
你也可以查看日志的輸出(就像使用tail命令那樣),如下所示:
docker-compose logs -f wordpress
只要wordpress服務(wù)的新信息記入日志,就會(huì)出現(xiàn)在終端窗口中(圖D)。
![](/d/20211016/35b3f1c37319ebd8a4a7ecc91380032b.gif)
圖D. 查看wordpress服務(wù)日志
如果你忘了部署中使用哪些端口,該怎么辦?可以查看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)。
![](/d/20211016/a1868944888aaca72860df33394774e9.gif)
圖E. Wordpress的端口映射
如果你記不得已部署的容器,可以執(zhí)行命令:
輸出會(huì)列出已部署的每個(gè)容器(圖F)。
圖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
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。