Docker基礎篇10:Docker Compose基礎知識
1、Docker Compose簡介及安裝
Compose是一個定義和管理多容器的工具,使用Python語言編寫。使用Compose配置檔案描述多個容器應用的架構,比如使用什麼映象、資料卷、網路、對映埠等;然後一條命令管理所有服務,比如啟動、停止、重啟等。
GitHub地址:https://github.com/docker/compose。
我們現在上圖中的 docker-compose-Linux-x86_64檔案拷貝到docker應用主機中。
【安裝compose】
[[email protected] soft]# curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[ [email protected] soft]# chmod +x /usr/local/bin/docker-compose
#檢視安裝後資訊
[[email protected] soft]# docker-compose version
docker-compose version 1.23.2, build 1110ad01
docker-py version: 3.6.0
CPython version: 3.6.7
OpenSSL version: OpenSSL 1.1.0f 25 May 2017
2、Docker Compose中yaml檔案說明
YAML是一種標記語言很直觀的資料序列化格式,可讀性高。類似於XML資料描述語言,語法比XML簡單的很多。
YAML資料結構通過縮排來表示,連續的專案通過減號來表示,鍵值對用冒號分隔,陣列用中括號括起來,hash用花括號括起來。
YAML檔案格式注意事項
(1)不支援製表符tab鍵縮排,需要使用空格縮排
(2)通常開頭縮排2個空格
(3)字元後縮排1個空格,如冒號、逗號、橫杆
(4)用井號註釋
(5)如果包含特殊字元用單引號引起來
(6)布林值(true、false、yes、no、on、off)必須用引號括起來,這樣分析器會將他們解釋為字串。
欄位 | 說明 |
build dockerfile context |
指定Dockerfile檔名 構建映象上下文路徑 |
image | 指定映象 |
command | 執行映象命令 |
container_name | 指定容器名稱,由於容器名稱是唯一的,如果指定自定義名稱,則無法scale |
deploy | 指定部署和執行服務相關配置,只能在swarm模式使用 |
environment | 新增環境變數 |
networks | 加入網路,引用頂級networks下條目 |
ports | 暴露端,與-p相同,但是埠不能低於60 |
volumes | 掛載宿主機路徑或命名卷。如果是命名卷在頂級volumes定義卷名稱 |
restart | 重啟策略,預設no,always|on-failre|unless-stopped |
hostname | 容器主機 |
【注意】YAML檔案官方官方詳細說明:https://docs.docker.com/compose/compose-file/#resources
3、Compose常用命令
【compose常用命令】
(1)build:重新構建服務;
(2)ps:列出容器;
(3)up:建立愛你和啟動容器;
(4)exec:在容器裡執行命令;
(5)scale:指定一個服務容器啟動數量;
(6)top:顯示容器程序;
(7)logs:檢視容器輸出日誌;
(8)down:刪除容器、網路、資料卷和映象;
(9)stop/start/restart:停止、啟動、重啟服務。
4、docker-compose啟動/停止命令
【前臺執行】
#前臺執行
[[email protected] ~]# docker-compose -f docker-compose.yml up
【後臺執行】
#後臺啟動命令
[[email protected] ~]# docker-compose -f docker-compose.yml up -d
【啟動命令】
#啟動命令
[[email protected] ~]# docker-compose -f docker-compose.yml start
【停止命令】
[[email protected] ~]# docker-compose stop
【移除容器】
[[email protected] ~]# docker-compose -f docker-compose.yml down