docker-compose是一個用于定義和運行多容器Docker應用程序的工具。使用Compose,可以使用YAML文件來配置應用程序的服務。然后,使用單個命令,可以從配置中創建并啟動所有服務。
docker-compose.yml
中定義構成應用程序的服務.docker-compose up
啟動并運行整個應用程序。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
#執行: source /etc/profile 生效.
從版本1.3開始,Compose使用Docker標簽來跟蹤容器,并且需要重新創建容器以添加標簽。 如果Compose檢測到沒有標簽創建的容器,它將拒絕運行.
sudo rm /usr/local/bin/docker-compose
#或者:
pip uninstall docker-compose
Usage: build [options] [--build-arg key=val...] [SERVICE...]
選項:
--compress 使用gzip壓縮構建上下文
--force-rm 始終移除中間容器
--no-cache 構建鏡像時不要使用緩存
--pull 拉取最新版本的鏡像
-m, --memory MEM 設置構建容器的內存限制
--build-arg key=val 設置服務的構建時候的變量
--parallel 并行構建鏡像
注意: 如果更改服務的Dockerfile,請運行docker-compose build
進行重建。
Usage: bundle [options]
選項:
--push-images 自動推送構建以后的服務的鏡像
-o, --output PATH 將包文件寫入的路徑
Usage: config [options]
選項:
--resolve-image-digests 鏡像摘要的標記
--no-interpolate 不要插入環境變量
-q, --quiet 僅驗證配置,不打印任何內容
--services 打印服務名稱,每行一個
--volumes 打印存儲卷名稱,每行一個
--hash="*" 打印服務配置哈希,每行一個。設置“service1,service2”以獲取指定服務的列表或使用通配符來顯示所有服務。
為服務創建容器
Usage: create [options] [SERVICE...]
選項:
--force-recreate 即使沒有更改配置,也要重新創建容器
--no-recreate 如果容器已存在,請不要重新創建。
--no-build 即使容器丟失,也不要構建鏡像.
--build 在創建容器之前構建鏡像
Usage: down [options]
選項:
--rmi type 刪除鏡像。類型:
'all':刪除任何服務使用的所有圖像。
'local':僅刪除沒有的圖像
自定義標簽由image字段設置。
-v, --volumes 刪除volumes中聲明的存儲卷
--remove-orphans 刪除沒有在文件中定義的服務的容器
-t, --timeout TIMEOUT 以秒為單位指定關閉超時(默認10s)
默認刪除的內容:在Compose文件中定義的服務的容器和定義的服務的網絡.
注意:永遠不會刪除定義為外部的網絡和卷.:
Usage: events [options] [SERVICE...]
選項:
--json 將事件輸出為json對象流
Usage: exec [options] [-e KEY=VAL...] SERVICE COMMAND [ARGS...]
選項:
-d, --detach 在后臺運行命令
--privileged 為進程提供擴展權限
-u, --user USER 以該用戶身份運行該命令
-T 禁用偽tty分配。默認情況下`docker-compose exec`分配TTY
--index=index 容器的索引.
-e, --env KEY=VAL 設置環境變量
-w, --workdir DIR 此命令的workdir目錄的路徑
Usage: images [options] [SERVICE...]
選項:
-q, --quiet 僅顯示ID
Usage: kill [options] [SERVICE...]
選項:
-s SIGNAL SIGNAL信號發送到容器,默認信號是SIGKILL
通過發送SIGKILL信號強制運行容器停止:
docker-compose kill -s SIGINT
Usage: logs [options] [SERVICE...]
選項:
--no-color 產生單色輸出
-f, --follow 按照日志輸出
-t, --timestamps 顯示時間戳
--tail="all" 每個容器的日志末尾顯示的行數
Usage: pause [SERVICE...]
暫停運行服務的容器: docker-compose unpause
Usage: port [options] SERVICE PRIVATE_PORT
選項:
--protocol=proto tcp或udp.默認是tcp
--index=index 容器的索引.
Usage: ps [options] [SERVICE...]
選項:
-q, --quiet 僅顯示id
--services 顯示服務
--filter KEY=VAL 按屬性過濾服務
-a, --all 顯示所有已停止的容器
Usage: pull [options] [SERVICE...]
--ignore-pull-failures 拉取鏡像失敗時忽略
--parallel 并行拉取鏡像
--no-parallel 禁用并行拉取鏡像
-q, --quiet 拉取鏡像時不打印進度信息
--include-deps 將服務聲明為依賴項
Usage: push [options] [SERVICE...]
選項:
--ignore-push-failures 推送鏡像失敗時忽略
Usage: restart [options] [SERVICE...]
選項:
-t, --timeout TIMEOUT 以秒為單位指定關閉超時
Usage: rm [options] [SERVICE...]
選項:
-f, --force 不要詢問是否刪除,強制刪除.
-s, --stop 在移除之前停止容器
-v 刪除附加到容器的存儲卷
列出所有卷,使用docker volume ls。
任何不在卷中的數據都將丟失。
刪除已停止的服務容器。 默認情況下,不會刪除附加到容器的存儲卷
Usage:
run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] [-l KEY=VALUE...] SERVICE [COMMAND] [ARGS...]
選項:
-d, --detach 在后臺運行容器,打印新容器名稱
--name NAME 為容器指定名稱
--entrypoint CMD 覆蓋鏡像的入口點
-e KEY=VAL 設置環境變量
-l, --label KEY=VAL 添加或覆蓋標簽(可多次使用)
-u, --user="" 以指定的用戶名或uid運行
--no-deps 不要啟動依賴的服務
--rm 運行后刪除容器
-p, --publish=[] 將容器的端口發布到主機
--service-ports 在啟用并映射服務端口的情況下運行命令給主機.
--use-aliases 在網絡中使用服務的網絡別名
-v, --volume=[] 綁定一個存儲卷
-w, --workdir="" 容器內的工作目錄
例如:
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
請使用帶有--scale標志的up命令。
Usage: scale [options] [SERVICE=NUM...]
選項:
-t, --timeout TIMEOUT 以秒為單位指定關閉超時
設置要為服務運行的容器數。 數字以service = num的形式指定為參數:
docker-compose scale web=2 worker=3
Usage: start [SERVICE...]
啟動服務的現有容器
Usage: stop [options] [SERVICE...]
-t, --timeout TIMEOUT 以秒為單位指定關閉超時
Usage: top [SERVICE...]
顯示運行的進程.
Usage: unpause [SERVICE...]
取消暫停服務的暫停容器
Usage: up [options] [--scale SERVICE=NUM...] [SERVICE...]
選項:
-d, --detach 在后臺運行容器,打印新的容器名稱
--no-color 產生單色輸出
--quiet-pull 拉取時不打印進度信息
--no-deps 不要啟動與這個服務依賴的其他服務
--force-recreate 即使配置也重新創建容器
--always-recreate-deps 重新創建依賴容器
--no-recreate 如果容器已存在,就不要創建.
--no-build 即使丟失,也不要構建鏡像.
--no-start 創建后不要啟動服務
--build 在啟動容器之前構建映像
--abort-on-container-exit 如果有任何容器停止,則停止所有容器
-t, --timeout TIMEOUT 對容器使用此超時(以秒為單位)連接時或容器時關閉.
-V, --renew-anon-volumes 重新創建存儲卷,不檢索之前容器的數據.
--remove-orphans 刪除未定義的服務的容器
--exit-code-from SERVICE 返回所選服務的退出代碼
--scale SERVICE=NUM 將SERVICE擴展到NUM個實例
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。