docker-compose是一個(gè)用于定義和運(yùn)行多容器Docker應(yīng)用程序的工具。使用Compose,可以使用YAML文件來(lái)配置應(yīng)用程序的服務(wù)。然后,使用單個(gè)命令,可以從配置中創(chuàng)建并啟動(dòng)所有服務(wù)。
創(chuàng)新互聯(lián)主營(yíng)錦屏網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶App定制開(kāi)發(fā),錦屏h5小程序定制開(kāi)發(fā)搭建,錦屏網(wǎng)站營(yíng)銷(xiāo)推廣歡迎錦屏等地區(qū)企業(yè)咨詢(xún)
docker-compose.yml
中定義構(gòu)成應(yīng)用程序的服務(wù).docker-compose up
啟動(dòng)并運(yùn)行整個(gè)應(yīng)用程序。sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#或者:
vim /etc/profile
export COMPOSE=/usr/local/bin/
export PATH=$COMPOSE:$PATH
#執(zhí)行: source /etc/profile 生效.
從版本1.3開(kāi)始,Compose使用Docker標(biāo)簽來(lái)跟蹤容器,并且需要重新創(chuàng)建容器以添加標(biāo)簽。 如果Compose檢測(cè)到?jīng)]有標(biāo)簽創(chuàng)建的容器,它將拒絕運(yùn)行.
sudo rm /usr/local/bin/docker-compose
#或者:
pip uninstall docker-compose
Usage: build [options] [--build-arg key=val...] [SERVICE...]
選項(xiàng):
--compress 使用gzip壓縮構(gòu)建上下文
--force-rm 始終移除中間容器
--no-cache 構(gòu)建鏡像時(shí)不要使用緩存
--pull 拉取最新版本的鏡像
-m, --memory MEM 設(shè)置構(gòu)建容器的內(nèi)存限制
--build-arg key=val 設(shè)置服務(wù)的構(gòu)建時(shí)候的變量
--parallel 并行構(gòu)建鏡像
注意: 如果更改服務(wù)的Dockerfile,請(qǐng)運(yùn)行docker-compose build
進(jìn)行重建。
Usage: bundle [options]
選項(xiàng):
--push-images 自動(dòng)推送構(gòu)建以后的服務(wù)的鏡像
-o, --output PATH 將包文件寫(xiě)入的路徑
Usage: config [options]
選項(xiàng):
--resolve-image-digests 鏡像摘要的標(biāo)記
--no-interpolate 不要插入環(huán)境變量
-q, --quiet 僅驗(yàn)證配置,不打印任何內(nèi)容
--services 打印服務(wù)名稱(chēng),每行一個(gè)
--volumes 打印存儲(chǔ)卷名稱(chēng),每行一個(gè)
--hash="*" 打印服務(wù)配置哈希,每行一個(gè)。設(shè)置“service1,service2”以獲取指定服務(wù)的列表或使用通配符來(lái)顯示所有服務(wù)。
為服務(wù)創(chuàng)建容器
Usage: create [options] [SERVICE...]
選項(xiàng):
--force-recreate 即使沒(méi)有更改配置,也要重新創(chuàng)建容器
--no-recreate 如果容器已存在,請(qǐng)不要重新創(chuàng)建。
--no-build 即使容器丟失,也不要構(gòu)建鏡像.
--build 在創(chuàng)建容器之前構(gòu)建鏡像
Usage: down [options]
選項(xiàng):
--rmi type 刪除鏡像。類(lèi)型:
'all':刪除任何服務(wù)使用的所有圖像。
'local':僅刪除沒(méi)有的圖像
自定義標(biāo)簽由image字段設(shè)置。
-v, --volumes 刪除volumes中聲明的存儲(chǔ)卷
--remove-orphans 刪除沒(méi)有在文件中定義的服務(wù)的容器
-t, --timeout TIMEOUT 以秒為單位指定關(guān)閉超時(shí)(默認(rèn)10s)
默認(rèn)刪除的內(nèi)容:在Compose文件中定義的服務(wù)的容器和定義的服務(wù)的網(wǎng)絡(luò).
注意:永遠(yuǎn)不會(huì)刪除定義為外部的網(wǎng)絡(luò)和卷.:
Usage: events [options] [SERVICE...]
選項(xiàng):
--json 將事件輸出為json對(duì)象流
Usage: exec [options] [-e KEY=VAL...] SERVICE COMMAND [ARGS...]
選項(xiàng):
-d, --detach 在后臺(tái)運(yùn)行命令
--privileged 為進(jìn)程提供擴(kuò)展權(quán)限
-u, --user USER 以該用戶(hù)身份運(yùn)行該命令
-T 禁用偽tty分配。默認(rèn)情況下`docker-compose exec`分配TTY
--index=index 容器的索引.
-e, --env KEY=VAL 設(shè)置環(huán)境變量
-w, --workdir DIR 此命令的workdir目錄的路徑
Usage: images [options] [SERVICE...]
選項(xiàng):
-q, --quiet 僅顯示ID
Usage: kill [options] [SERVICE...]
選項(xiàng):
-s SIGNAL SIGNAL信號(hào)發(fā)送到容器,默認(rèn)信號(hào)是SIGKILL
通過(guò)發(fā)送SIGKILL信號(hào)強(qiáng)制運(yùn)行容器停止:
docker-compose kill -s SIGINT
Usage: logs [options] [SERVICE...]
選項(xiàng):
--no-color 產(chǎn)生單色輸出
-f, --follow 按照日志輸出
-t, --timestamps 顯示時(shí)間戳
--tail="all" 每個(gè)容器的日志末尾顯示的行數(shù)
Usage: pause [SERVICE...]
暫停運(yùn)行服務(wù)的容器: docker-compose unpause
Usage: port [options] SERVICE PRIVATE_PORT
選項(xiàng):
--protocol=proto tcp或udp.默認(rèn)是tcp
--index=index 容器的索引.
Usage: ps [options] [SERVICE...]
選項(xiàng):
-q, --quiet 僅顯示id
--services 顯示服務(wù)
--filter KEY=VAL 按屬性過(guò)濾服務(wù)
-a, --all 顯示所有已停止的容器
Usage: pull [options] [SERVICE...]
--ignore-pull-failures 拉取鏡像失敗時(shí)忽略
--parallel 并行拉取鏡像
--no-parallel 禁用并行拉取鏡像
-q, --quiet 拉取鏡像時(shí)不打印進(jìn)度信息
--include-deps 將服務(wù)聲明為依賴(lài)項(xiàng)
Usage: push [options] [SERVICE...]
選項(xiàng):
--ignore-push-failures 推送鏡像失敗時(shí)忽略
Usage: restart [options] [SERVICE...]
選項(xiàng):
-t, --timeout TIMEOUT 以秒為單位指定關(guān)閉超時(shí)
Usage: rm [options] [SERVICE...]
選項(xiàng):
-f, --force 不要詢(xún)問(wèn)是否刪除,強(qiáng)制刪除.
-s, --stop 在移除之前停止容器
-v 刪除附加到容器的存儲(chǔ)卷
列出所有卷,使用docker volume ls。
任何不在卷中的數(shù)據(jù)都將丟失。
刪除已停止的服務(wù)容器。 默認(rèn)情況下,不會(huì)刪除附加到容器的存儲(chǔ)卷
Usage:
run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] [-l KEY=VALUE...] SERVICE [COMMAND] [ARGS...]
選項(xiàng):
-d, --detach 在后臺(tái)運(yùn)行容器,打印新容器名稱(chēng)
--name NAME 為容器指定名稱(chēng)
--entrypoint CMD 覆蓋鏡像的入口點(diǎn)
-e KEY=VAL 設(shè)置環(huán)境變量
-l, --label KEY=VAL 添加或覆蓋標(biāo)簽(可多次使用)
-u, --user="" 以指定的用戶(hù)名或uid運(yùn)行
--no-deps 不要啟動(dòng)依賴(lài)的服務(wù)
--rm 運(yùn)行后刪除容器
-p, --publish=[] 將容器的端口發(fā)布到主機(jī)
--service-ports 在啟用并映射服務(wù)端口的情況下運(yùn)行命令給主機(jī).
--use-aliases 在網(wǎng)絡(luò)中使用服務(wù)的網(wǎng)絡(luò)別名
-v, --volume=[] 綁定一個(gè)存儲(chǔ)卷
-w, --workdir="" 容器內(nèi)的工作目錄
例如:
docker-compose run --service-ports web python manage.py shell
docker-compose run --publish 8080:80 -p 2022:22 -p 127.0.0.1:2021:21 web python manage.py shell
docker-compose run db psql -h db -U docker
docker-compose run --no-deps web python manage.py shell
請(qǐng)使用帶有--scale標(biāo)志的up命令。
Usage: scale [options] [SERVICE=NUM...]
選項(xiàng):
-t, --timeout TIMEOUT 以秒為單位指定關(guān)閉超時(shí)
設(shè)置要為服務(wù)運(yùn)行的容器數(shù)。 數(shù)字以service = num的形式指定為參數(shù):
docker-compose scale web=2 worker=3
Usage: start [SERVICE...]
啟動(dòng)服務(wù)的現(xiàn)有容器
Usage: stop [options] [SERVICE...]
-t, --timeout TIMEOUT 以秒為單位指定關(guān)閉超時(shí)
Usage: top [SERVICE...]
顯示運(yùn)行的進(jìn)程.
Usage: unpause [SERVICE...]
取消暫停服務(wù)的暫停容器
Usage: up [options] [--scale SERVICE=NUM...] [SERVICE...]
選項(xiàng):
-d, --detach 在后臺(tái)運(yùn)行容器,打印新的容器名稱(chēng)
--no-color 產(chǎn)生單色輸出
--quiet-pull 拉取時(shí)不打印進(jìn)度信息
--no-deps 不要啟動(dòng)與這個(gè)服務(wù)依賴(lài)的其他服務(wù)
--force-recreate 即使配置也重新創(chuàng)建容器
--always-recreate-deps 重新創(chuàng)建依賴(lài)容器
--no-recreate 如果容器已存在,就不要?jiǎng)?chuàng)建.
--no-build 即使丟失,也不要構(gòu)建鏡像.
--no-start 創(chuàng)建后不要啟動(dòng)服務(wù)
--build 在啟動(dòng)容器之前構(gòu)建映像
--abort-on-container-exit 如果有任何容器停止,則停止所有容器
-t, --timeout TIMEOUT 對(duì)容器使用此超時(shí)(以秒為單位)連接時(shí)或容器時(shí)關(guān)閉.
-V, --renew-anon-volumes 重新創(chuàng)建存儲(chǔ)卷,不檢索之前容器的數(shù)據(jù).
--remove-orphans 刪除未定義的服務(wù)的容器
--exit-code-from SERVICE 返回所選服務(wù)的退出代碼
--scale SERVICE=NUM 將SERVICE擴(kuò)展到NUM個(gè)實(shí)例