一、概述
在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 中执行多个命令。首先,我们了解了如何使用&&
运算符执行多个命令。后来,我们使用了|
算子来达到类似的效果。
0 评论