在 Docker Compose 中執行多個命令
一、概述
在 Docker 中,開發人員可以通過將應用程序及其所有依賴項打包到容器中來構建、部署和測試應用程序。 Docker Compose 是使用服務管理多個容器的重要工具。
在本教程中,我們將了解如何在使用 Docker Compose 管理的 Docker 容器中執行多個命令。此外,我們將探索在 Docker 容器中運行多個命令的不同方法。
2.運行單個命令
Docker Compose 允許我們在 Docker 容器內執行命令。在容器啟動過程中,我們可以通過[command](https://docs.docker.com/compose/compose-file/#command)
指令設置任何命令。
讓我們看一下docker-compose.yml
,它在容器內運行一個簡單的命令:
version: "3"
services:
server:
image: alpine
command: sh -c "echo "baeldung""
在上面docker-compose.yml
文件中,我們在[alpine](https://hub.docker.com/_/alpine)
Docker 鏡像中執行了一個echo
命令。
3.運行多個命令
我們可以使用 Docker Compose 通過在docker-compose.yml
文件中創建服務來管理多個應用程序。具體來說,我們將使用&&
和|
運營商。讓我們來看看兩者。
3.1。使用&&
運算符
我們將首先創建一個簡單docker-compose.yml
文件來演示 Docker Compose 如何運行多個命令:
version: "3"
services:
server:
image: alpine
command: sh -c "echo "baeldung" && echo "docker" "
在這裡,我們使用alpine
作為 Docker 容器的基礎鏡像。注意我們執行兩個命令的最後一行: echo baeldung
和echo docker
docker。它們由&&
運算符拆分。
為了演示結果,讓我們使用docker-compose up
命令運行這個鏡像:
$ docker-compose up
Creating dockercompose_server_1 ... done
Attaching to dockercompose_server_1
server_1 | baeldung
server_1 | docker
dockercompose_server_1 exited with code 0
在這裡,兩個echo
語句的輸出都打印在stdout
上。
3.2.使用 |操作員
我們也可以使用 |操作員在 Docker Compose 中運行多個命令。 |
的語法運算符與&&
運算符有點不同。
為了說明|
操作員工作,讓我們更新我們docker-compose.yml
:
version: "3"
services:
server:
image: alpine
command:
- /bin/sh
- -c
- |
echo "baeldung"
echo "docker"
在這裡,我們在單獨的行中添加了命令。除了command
指令外,一切都相同。
建議使用這種方法,因為它可以保持我們的 YAML 文件乾淨,因為所有命令都在單獨的行中。
讓我們再次使用docker-compose up
命令運行 Docker 容器:
$ docker-compose up
Creating dockercompose_server_1 ... done
Attaching to dockercompose_server_1
server_1 | baeldung
server_1 | docker
dockercompose_server_1 exited with code 0
從上面的輸出中我們可以看到,兩個命令都是一一執行的。
4。結論
在本文中,我們演示瞭如何在 Docker Compose 中執行多個命令。首先,我們了解瞭如何使用&&
運算符執行多個命令。後來,我們使用了|
算子來達到類似的效果。