雲計算核心技術Docker教程:Docker Compose run命令詳解
2020年11月19日17:41

原標題:雲計算核心技術Docker教程:Docker Compose run命令詳解

Docker-Compose run命令可以針對服務運行一次性命令,使用run命令可以從具有由服務定義的配置的新容器中啟動,包括卷,鏈接和其他詳細信息。

語法格式

Usage:

run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] [-l KEY=VALUE...]

SERVICE [COMMAND] [ARGS...]

Options:

-d, --detach 後台運行,輸出容器名.

--name NAME 到容器中分配一個名稱

--entrypoint CMD 覆蓋鏡像的入口點。

-e KEY=VAL 設置環境變量參數,可以使用多次

-l, --label KEY=VAL 添加或覆蓋一個標籤(可以多次使用)

-u, --user="" 指定運行的用戶

--no-deps 不啟動link服務,只啟動run的服務.

--rm 運行後刪除容器,後台運行模式除外(-d).

-p, --publish=[] 開放端口

--service-ports compose文件中配置什麼端口,就映射什麼端口.

--use-aliases 使用網絡服務的網絡別名(s)容器連接。

-v, --volume=[] 綁定掛載卷

-T 禁用TTY.

-w, --workdir="" 設置工作目錄

例如,以下命令啟動web服務並bash作為其命令運行。

docker-compose run web bash

您使用的命令run從具有由服務定義的配置的新容器中啟動,包括卷,鏈接和其他詳細信息。但是,有兩個重要的區別。

首先,通過的命令將run覆蓋服務配置中定義的命令。例如,如果web服務配置以bash開頭,則將其docker-compose run web python app.py覆蓋python app.py。

第二個區別是該docker-compose run命令不會創建服務配置中指定的任何端口。這可以防止端口與已打開的端口發生衝突。如果您確實想要創建服務的端口並將其映射到主機,請指定--service-ports標誌:

docker-compose run --service-ports web python manage.py shell

另外,可以使用--publish或-p選項指定手動端口映射,就像使用時一樣docker run:

docker-compose run --publish 8080:80 -p 2022:22 -p 127.0.0.1:2021:21 web python manage.py shell

如果啟動使用鏈接配置的服務,則該run命令首先檢查鏈接服務是否正在運行,並在停止時啟動該服務。一旦所有鏈接的服務都在運行,則runexec將執行您傳遞的命令。例如,您可以運行:

docker-compose run db psql -h db -U docker

這將為鏈接的db容器打開一個交互式PostgreSQL shell 。

如果您不希望run命令啟動鏈接的容器,請使用--no-deps標誌:

docker-compose run --no-deps web python manage.py shell

如果要在覆蓋容器的重新啟動策略的同時運行後除去該容器,請使用--rm標誌:

docker-compose run --rm web python manage.py db upgrade

這將運行數據庫升級腳本,並在完成運行後刪除容器,即使在服務配置中指定了重新啟動策略也是如此。

關注我們Facebook專頁
    相關新聞
      更多瀏覽