本篇文章給大家?guī)砹薲ocker中compose的相關(guān)知識,其中包括了compose文件結(jié)構(gòu)以及安裝docker compose工具的相關(guān)知識,希望對大家有幫助。
什么是docker compose?
docker compose是一個容器編排功能,將運行在不同容器中的不同服務(wù)器進行編排,聯(lián)合在一起。
可以用于對多數(shù)容器進行統(tǒng)一管理:包括但不限于:網(wǎng)絡(luò)、端口、掛載等可以用于實現(xiàn)容器的集群化,相關(guān)于容器、鏡像的一系列操作,compose都可以進行操作,就是一個對于容器進行管理的功能
一、compose文件結(jié)構(gòu)
1、yml文件
compose中文件結(jié)構(gòu)通常是指yml文件的結(jié)構(gòu),那什么是yml文件?
yml文件是一種鍵值對格式的文件。
yml文件對于格式非常的敏感,需要注意以下幾種事項:
- 只識別空格進行的縮進,不識別tab鍵的縮進形式
- 通常開頭部分縮進兩個空格
- 字符后面縮進一格空格,包括但不限于:冒號、逗號、橫杠等這些字符。字符后面必須縮進一格
- 支持使用#來進行注釋
- 如果包含特殊字符,需要使用單引號引用起來
- 布爾值必須使用引號括起來
例如:
house: family: name: Doe parents: - John - Jane children: - Paul - Mark - Simone address: number: 34 street: Main Street city: Nowheretown zipcode: 1234
yml文件格式例如上面,需要進行一級級的對應(yīng),不同級之間,有兩個空格的間隔。
注:如果在一個層級中,一個鍵有多個值,可以使用在下一個層級,同樣是空余兩格,以短橫杠起始,有幾個值寫幾個端橫杠
2、Compose配置常用的字段
字段 | 描述 |
---|---|
build dockerfile centext | 指定Dockerfile文件名構(gòu)建鏡像上下文的路徑 |
images | 指定鏡像 |
command | 執(zhí)行命令,覆蓋默認命令 |
container name | 指定容器名稱,由于容器名稱是唯一的。如果指定自定義名稱,則是無法創(chuàng)建scale |
deploy | 指定部署和運行服務(wù)相關(guān)配置,只能再Swarm模式使用 |
environment | 添加環(huán)境變量 |
networks | 加入網(wǎng)絡(luò) |
ports | 暴露容器端口,與-p相同,但是端口號必須大于60 |
volumts | 掛載宿主機路徑或者命令卷 |
restart | 重啟策略,默認no,always, on-failure,unless-stoped |
hostname | 容器主機名 |
build:構(gòu)造一個鏡像時候的一個定義方式
dockerfile:方式是使用dockerfile的方式構(gòu)建
context:服務(wù)docerfile文件的路徑
images:可以指定使用的鏡像名字,例如:images: 鏡像名,注意:后面有個空格
command:執(zhí)行一個語句
container name:用于指定容器的名稱,因為容器名字是唯一的。如果指定自定義名稱,則無法scale(設(shè)置副本集)
#副本集:將一個鏡像制作成多個容器,這多個容器之間,運行環(huán)境等方面都是一模一樣。當(dāng)容器架構(gòu)中的一個容器掛掉之后,可以直接啟動一個相同的容器,用以保持副本集的數(shù)量,這是副本集的概念,同樣也是K8s的核心??梢蕴岣呶⒎?wù)的速度,提高容災(zāi),高并發(fā)性能
deploy:是一個控制器,在k8s中是控制管理副本集的一個插件
restart:一種重啟策略,默認是關(guān)閉之后不啟動,如果always則是不管是手動關(guān)閉還是非手動關(guān)閉,都會自動把關(guān)閉狀態(tài)的容器啟動,unless-stoped只拉取關(guān)閉狀態(tài)的容器,on-failure,只會啟動容器返回碼非零的容器
3、Compose在外部的常用命令
字段 | 描述 |
---|---|
build | 重新構(gòu)建一個鏡像信息 |
ps | 列出容器當(dāng)前docker compose所控制的容器 |
up | 創(chuàng)建以及啟動容器 |
exec | 在容器內(nèi)執(zhí)行命令 |
scale | 指定一個服務(wù)器的啟動數(shù)量,相當(dāng)于副本集的數(shù)量 |
top | 顯示容器進程,所有docker compose控制的進程啟動的容器 |
logs | 查看容器的輸出信息 |
down | 刪除容器、網(wǎng)絡(luò)、數(shù)據(jù)卷和鏡像 |
stop/start/restart | 停止/啟動/重啟容器服務(wù) |
docker compose基本使用格式:docker-compose [options] [COMMAND] [ARGS…]
docker-compose選項:
- –verbose:輸出