简体   繁体   English

如何在具有不同名称的同一个docker守护程序上多次运行相同的docker-compose.yml?

[英]How do I run the same docker-compose.yml several times on same docker daemon with different names?

My situation. 我的情况。 Trying to run a docker-compose structure several times on the same box. 试图在同一个盒子上多次运行一个docker-compose结构。 This is my docker-compose.yml : 这是我的docker-compose.yml

version: '3'
services:
  code:
    image: organization:java-maven
    links:
      - mysql:mysql
    volumes:
      - "${PWD}:/home/ubuntu/src"
  mysql:
    image: organization:mysql

Running this twice with docker-compose run code mvn clean test creates two containers of code and one container of mysql . 使用docker-compose run code mvn clean test运行这两次docker-compose run code mvn clean test会创建两个code容器和一个mysql容器。

Now, I want one code to be linked to one mysql , and another code linked to another mysql . 现在,我希望一个code链接到一个mysql另一个 code链接到另一个 mysql

How do I accomplish this? 我该如何做到这一点? This is supposed to run on jenkins slaves and the maven executions cannot share mysql. 这应该是在jenkins奴隶上运行的,并且maven执行不能共享mysql。

I've miserably failed trying with the "-e KEY=VALUE" option for docker-compose run together with container_name in the docker compose file. docker-compose rundocker-compose run compose文件中使用docker-compose runcontainer_name一起docker-compose run “-e KEY = VALUE”选项。

Not sure how to approach this, please help, thank you. 不知道该如何处理,请帮助,谢谢。

So, I focused too much on using directives to alter container names manually. 因此,我过分关注使用指令手动更改容器名称。 The solution was much easier. 解决方案要容易得多。

docker-compose -p anything run code mvn clean test

docker-compose -p anything_else run code mvn clean test

So, this is the project name solution. 所以,这是项目名称解决方案。 Docker compose will use the value given with the option -p as a prefix when creating container names. 在创建容器名称时,Docker compose将使用选项-p作为前缀给出的值。 That means no collision. 这意味着没有碰撞。

Very handy! 非常便利!

For more reading: documentation around project-name option 有关更多阅读:有关项目名称选项的文档

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在docker-compose.yml中有条件地运行不同的配置? - How to conditionally run different configs in docker-compose.yml? 我想在远程docker守护程序上运行docker-compose.yml,那卷呢? - I want to run a docker-compose.yml on a remote docker daemon, what about volumes? 如何在 docker-compose.yml 中模拟此“docker run”命令? - How do I emulate this "docker run" command in a docker-compose.yml? 如何使用相同的docker-compose.yml文件创建2个不同的正在运行的应用程序? - How to create 2 different running app with the same docker-compose.yml file? 我如何正确地将这个 docker-compose.yml 放在一起? - How do I put together this docker-compose.yml properly? 我如何真正将 docker-compose.yml 部署到云端? - How do I really deploy docker-compose.yml to the cloud? 如何使用docker-compose.yml在Docker上运行Redis? - How to run Redis on Docker using docker-compose.yml? 如何在docker-compose.yml上运行docker exec - how to run docker exec on a docker-compose.yml 如何在 Docker 中检查卷是否存在且不为空,并根据此运行不同的 docker-compose.yml? - How to check in Docker whether a volume exists and is not empty and run different docker-compose.yml depending on this? 如何从 docker-compose.yml 更改 docker-compose.yml 中已安装卷的权限? - How can I change permission of mounted volumes in docker-compose.yml from the docker-compose.yml?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM