将docker run命令转换为docker-compose

49

我想在我的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-compose文档 - larsks
4
请访问composerize.com - python_kaa
4个回答

63

将docker run命令转换为compose文件

Composerize 可以帮助您部分地将运行命令转换为 compose。

为了更好地理解,这里描述了 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
  • Multiple commands to the compose file:

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

  • Multi-line command to compose file:

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

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


我正在寻找一种工具,它的功能与现有的相反 - 从Docker Compose文件创建Docker Run命令。有这样的工具吗? - Oleg Abrazhaev

17

这个工具可以帮助你将Docker运行命令转换为大部分功能的Docker Compose命令。

在此输入图片描述


17

只需使用这个巧妙的小工具作为辅助工具:https://composerize.com/

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


7
这个工具很不错,但对于某些Docker运行命令来说非常有限。 - Lord_Dracon
顺便提一下,它也可以从CLI运行:https://github.com/magicmark/composerize#cli - saulius2

2
您可以使用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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接