【问题标题】:Convert a docker run command into a docker-compose将 docker run 命令转换为 docker-compose
【发布时间】:2018-04-23 15:26:31
【问题描述】:

我想在我的 Docker Swarm 中运行它:

docker run --rm -it progrium/stress --cpu 2 --io 1 --vm 2 --vm-bytes 128M --timeout 10s

所以我需要一个 Docker-compose.yml

我应该如何在 docker compose 中使用这个 docker 镜像并传递这些参数?

【问题讨论】:

标签: docker docker-compose docker-swarm


【解决方案1】:

将 docker run 命令转换为 compose 文件

Composerize 将帮助您将运行命令部分转换为撰写。

为了更好地理解它,我在这里描述了docker-compose.yml 的组件。

image - 用于运行容器的镜像

name - 服务或容器的名称

command - 容器启动后要运行的命令

volumes - 你想挂载的卷

将上面的运行命令转换为 docker-compose:

version: "2/3/3.3/3.6" # based on the docker-compose version you use
services:
   stress: # Service name, user defined
      image: progrium/stress 
      command: '--cpu 2 --io 1 --vm 2 --vm-bytes 128M --timeout 10s'

前两行对于任何 docker-compose 文件都是通用的。

在 docker-compose 中,command 允许图像接受额外的命令或选项。

docker-compose.yml

version: "2"
services:
   stress:
      image: progrium/stress
      command: '--cpu 2 --io 1 --vm 2 --vm-bytes 128M --timeout 10s'

使用 docker-compose 将文件组合为:

docker-compose up -d
  • 撰写文件的多个命令:

    command: bash -c "cd app/ && npm start"

  • 编写文件的多行命令:

    command: >
      bash -c "cd app/ 
      && npm start"
    

<embed src="https://composerize.com/"  width="100%" height="700">

【讨论】:

    【解决方案2】:

    只需使用这个漂亮的小工具作为助手:https://composerize.com/

    或者按照前面答案中突出显示的手动步骤...

    【讨论】:

    • 这个工具很好,但是对于一些 docker run 命令来说非常有限。
    【解决方案3】:

    This tool 将帮助您将 docker run 命令转换为 docker-compose 的大部分功能

    【讨论】:

      【解决方案4】:

      您可以使用 Compose 文件的 commandentrypoint 关键字。将docker run 命令转换为 docker-compose.yml 文件中的声明很简单。

      要在 docker-compose.yml 中使用 command 关键字:

      services:
        stress:
          image: progrium/stress
          command:
          - --cpu 2
          - --io 1
          - --vm 2
          - --vm-bytes 128M
          - --timeout 10s
      

      在 docker-compose.yml 中使用 entrypoint 关键字:

      services:
        stress:
          image: progrium/stress
          entrypoint:
          - <entrypoint name to override the original one>
          - --cpu 2
          - --io 1
          - --vm 2
          - --vm-bytes 128M
          - --timeout 10s
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-22
        • 2021-08-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多