未知的速记标志:-d docker compose 中的“d”

问题描述 投票:0回答:3

我正在使用 docker compose 进行工作。当尝试在后台运行 docker compose 时,但显示错误 未知的简写标志:'d' in -d

我就是这样尝试的

docker compose -d up

docker-compose.yml

version: '3'

networks:
  loki:

services:
  loki:
    image: grafana/loki:2.5.0
    # volumes:
    #   - ./loki:/loki
    ports:
      - 3100:3100
    networks:
      - loki
  
  promtail:
    image: grafana/promtail
    volumes:
      - ./promtail:/etc/promtail
      - /var/log/nginx/:/var/log/nginx/
    command: -config.file=/etc/promtail/promtail-config.yml
    ports:
      - 9080:9080
    networks:
      - loki
  
  grafana:
    image: grafana/grafana
    ports:
      - 3000:3000
    networks:
      - loki
    
  
docker-compose
3个回答
17
投票

接受的答案是提问者和其他将

-d
放在错误位置的人的正确答案。但这是错误消息的最高命中,我确信我不是唯一一个在运行后遇到此错误的人:

docker-compose up -d

接受的答案告诉我要准确地运行我运行的内容,这非常令人困惑。我终于明白了:

  1. docker-compose
    是一个独立于
    docker
    的软件包,至少在 Arch Linux 上如此,也可能在其他地方,并且

  2. 如果未安装

    docker-compose
    ,Docker 认为这是有道理的:

    $ docker compose up -d
    unknown shorthand flag: 'd' in -d
    

我认为这样回应会更加明智:

docker: 'compose' is not a docker command.

如果您在未安装

-d
的情况下不使用
docker-compose
,这就是它所说的,我的观点是添加
-d
不应改变这一点。

我现在已经安装了

docker-compose
并且一切正常,但我认为值得花时间希望为其他人避免一些麻烦,如果他们最终来到这里,因为他们有
docker
但没有
docker-compose


15
投票

-d
是子命令
up
的选项。 如果您运行
docker compose up --help
,您将获得更多信息。

要解决问题,请运行

docker compose up -d


6
投票

出于兼容性目的,我们使用了旧版本的 Docker;在旧版本中,它是

docker-compose
而不是
docker compose
。将其更改为连字符解决了此错误。

© www.soinside.com 2019 - 2024. All rights reserved.