拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 在Docker Compose 中执行多个命令

在Docker Compose 中执行多个命令

白鹭 - 2022-08-19 2207 0 2

一、概述

在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 baeldungecho dockerdocker。它们由&&运算符拆分。

为了演示结果,让我们使用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 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *