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

2020-12-10 TechWeb

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

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

相關焦點

  • 雲計算核心技術Docker教程:Compose使用
    3.最後,執行 docker-compose up 命令來啟動並運行整個應用程式。運行以下命令以下載 Docker Compose 的當前穩定版本:$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local
  • 雲計算核心技術Docker教程:docker-compose命令up,run以及start...
    通常,您需要docker-compose up。使用up啟動或重新啟動所有定義的服務docker-compose.yml。該docker-compose up命令匯總每個容器的輸出(本質上是docker-compose logs -f)。當命令退出時,所有容器都將停止。
  • 雲計算核心技術Docker教程:run 命令詳解
    來源:TechWeb.com.cn在docker客戶端命令行中,我們可以直接輸入 docker 命令來查看到 Docker 客戶端的所有命令選項。可以通過命令 docker command help 更深入的了解指定的 Docker 命令使用方法。
  • 雲計算核心技術Docker教程:Docker Compose up命令詳解
    Docker-Compose run命令可以構建,(重新)創建,啟動,連結一個服務相關的容器。連結的服務都將會啟動,除非他們已經運行。語法格式Usage: up [options] [--scale SERVICE=NUM...] [SERVICE...]
  • 雲計算核心技術Docker教程:info/version命令詳解
    來源:TechWeb.com.cn在docker客戶端命令行中我們可以使用info命令 顯示 Docker 系統信息,包括鏡像和容器數,通過version命令顯示 Docker 版本信息。示例docker info : 顯示 Docker 系統信息,包括鏡像和容器數語法docker info [OPTIONS]OPTIONS說明:-f :指定返回值的模板文件
  • 雲計算核心技術Docker教程:pull/push命令詳解
    來源:TechWeb.com.cn在docker客戶端命令行中我們可以使用pull從鏡像倉庫中拉取或者更新指定鏡像,使用push將本地的鏡像上傳到鏡像倉庫。示例:docker pull : 從鏡像倉庫中拉取或者更新指定鏡像語法:docker pull [OPTIONS] NAME[:TAG|@DIGEST]OPTIONS說明:
  • 雲計算核心技術Docker教程:rm/rmi命令詳解
    在docker客戶端命令行中我們可以使用rm刪除一個或多個容器,使用rmi刪除本地一個或多少鏡像。示例:docker rm :刪除一個或多個容器。例如,強制刪除容器 db01、db02,命令如下:$ docker rm -f db01 db02移除容器 nginx01 對容器 db01 的連接,連接名 db:$ docker rm -l db刪除容器 nginx01, 並刪除容器掛載的數據卷:$ docker rm -v nginx01刪除所有已經停止的容器
  • 雲計算核心技術Docker教程:docker-compose up命令介紹
    然後,使用一個命令,就可以從 YML 文件配置中創建並啟動所有服務。在下載安裝Docker Compose後通過創建 Dockerfile 文件就可以使用Docker Compose命令構建和啟動應用了,本文主要介紹docker-compose up命令。
  • 雲計算核心技術Docker教程:Docker鏡像使用
    所以,我們如果要使用版本為15.10的ubuntu系統鏡像來運行容器時,命令如下:# docker run -t -i ubuntu:15.10 /bin/bash如果你不指定一個鏡像的版本標籤,例如你只使用 ubuntu,docker 將默認使用 ubuntu:latest 鏡像
  • 雲計算核心技術Docker教程:docker-compose 常用命令介紹
    然後,使用一個命令,就可以從 YML 文件配置中創建並啟動所有服務。在下載安裝Docker Compose後通過創建 Dockerfile 文件就可以使用Docker Compose命令構建和啟動應用了,本文主要介紹docker-compose的常用命令。1.重啟項目中的服務。
  • 雲計算核心技術Docker教程:Docker Compose的pull和push命令詳解
    Docker-Compose pull命令可以拉取docker-compose.yml或者docker-stack.yml文件中定義的服務關聯的鏡像,Docker-Compose push命令可以將服務鏡像推送到registry/repository中。
  • 雲計算核心技術Docker教程:Docker Compose的start和stop命令詳解
    Docker-Compose start命令可以啟動一個已經存在的服務容器,stop命令可以停止一個已經運行的容器,但不刪除它。例如Docker-Compose啟動nginx容器docker-compose start nginx語法格式Usage: stop [options] [SERVICE...]Options:-t, --timeout TIMEOUT 指定一個關閉超時在幾秒鐘內。
  • 雲計算核心技術Docker教程:Docker容器使用
    docker 客戶端非常簡單 ,我們可以直接輸入 docker 命令來查看到 Docker 客戶端的所有命令選項。可以通過命令 docker command --help 更深入的了解指定的 Docker 命令使用方法。
  • 雲計算核心技術Docker教程:Docker Compose編寫CLI環境變量
    可以使用幾個環境變量來配置Docker Compose命令行行為。以開頭的變量與DOCKER_用於配置Docker命令行客戶端的變量相同。如果使用docker-machine,則eval "$(docker-machine env my-docker-vm)"命令應將它們設置為正確的值。(在此示例中,my-docker-vm是您創建的計算機的名稱。)COMPOSE_PROJECT_NAME設置項目名稱。啟動時,此值與服務名稱一起添加到容器中。
  • 雲計算核心技術Docker教程: Docker 安裝 Redis
    本文介紹通過docker安裝redis。1.我們用 docker search redis 命令來查看可用版本:3.查看本地鏡像,使用以下命令來查看是否已安裝了 redis:$ docker images
  • 雲計算核心技術Docker教程:Docker Compose指定單個compose文件
    docker-compose可以使用該-f標誌通過命令行或通過在外殼程序或環境文件中設置COMPOSE_FILE環境變量來指定不在當前目錄中的Compose文件的路徑。
  • 雲計算核心技術Docker教程:docker Stack介紹
    docker stack和docker-compose使用方式相同,但是為什麼引入docker stack技術呢。兩者的使用方式,命令如下:$ docker-compose -f docker-compose up$ docker stack deploy -c docker-compose.yml somestackname兩機制都能操縱 compose.yml
  • 雲計算核心技術Docker教程:Docker Machine 使用 - TechWeb
    Docker Machine 是一個工具,它允許你在虛擬宿主機上安裝Docker,並使用docker-machine命令管理這個宿主機,可以使用Docker Machine在本地的MAC或者windows box、公司網絡,數據中心或者AWS這樣的雲提供商上創建docker。
  • 雲計算核心技術Docker教程:create/commit命令詳解
    來源:TechWeb.com.cn在docker客戶端命令行中我們可以使用create命令創建一個新的容器但不啟動它,通過commit命令從容器創建一個新的鏡像。示例docker create :創建一個新的容器但不啟動它,跟run用法相同。語法docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
  • 雲計算核心技術Docker教程:Dockerfile文件CMD命令詳解
    Dockerfile文件ADD指令是用於指定默認的容器主進程的啟動命令。Docker 不是虛擬機,容器就是進程。既然是進程,那麼在啟動容器的時候,需要指定所運行的程序及參數。