如何创建名称中没有项目名称前缀的 docker 服务?

How to create a docker service without project name prefix in its name?

我刚刚开始学习 Docker 构建微服务。我试图理解并遵循 eShopOnContainers 应用程序作为我的参考应用程序来理解所有概念。为了测试,我创建了两个 ASP.Net Web API 服务并创建了一个 docker-compose.yml 文件来测试我是否可以 运行 它们。我能够 运行 服务,但我注意到一件事是服务名称不是很整洁。它们包含文件夹名称前缀。例如,这是我的 docker-compose.yml 文件

的一部分
services:
  orders-api:
    image: orders-api
    build:
      context: .
      dockerfile: src/Services/Orders/Dockerfile
    ports:
      - "1122:80"

我希望当此服务 运行 时,它应该被命名为 orders-api 但它的名称变成了 micrservicestest_orders-api_1。 MicroservicesTest 是我项目的文件夹名称。我试图找到解决它的方法,但 seems 就像这样是 Docker 本身的限制。我唯一不明白的是,当我 运行 eShopOnContainers 的示例应用程序时,他们的服务具有可读的名称,没有任何前缀。他们如何生成更具可读性的服务名称?

你能告诉我我在这里遗漏了什么吗?

docker-compose 自动为您的容器名称添加前缀。 默认情况下,前缀是您执行的目录的基本名称 docker-compose up.

您可以使用 $ docker-compose --project-name MY_PROJECT_NAME 更改它,但这不是您想要的。

您可以使用container_name:指定容器的名称。

services:
  orders-api:
    image: orders-api
    build:
      context: .
      dockerfile: src/Services/Orders/Dockerfile
    container_name: orders-api
    ports:
      - "1122:80"