1. 程式人生 > >Docker基礎篇10:Docker Compose基礎知識

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)必須用引號括起來,這樣分析器會將他們解釋為字串

YAML檔案配置說明
欄位 說明

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