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