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

时间:2020-08-31 08:35:07

标签: docker asp.net-core docker-compose microservices

我刚刚开始学习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的示例应用程序时,它们的服务具有可读的名称,没有任何前缀。他们如何能够生成更具可读性的服务名称?

你能告诉我我在这里想念什么吗?

1 个答案:

答案 0 :(得分:0)

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"