未知的简写标志:-d docker compose 中的“d”

Amj*_*eel 10 docker-compose

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

我是这样尝试的

docker compose -d up
Run Code Online (Sandbox Code Playgroud)

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
    
  
Run Code Online (Sandbox Code Playgroud)

小智 15

-d是子命令的一个选项up。如果你跑步,docker compose up --help你将获得更多信息。

解决运行问题docker compose up -d


Dar*_*tle 13

接受的答案对于提问者来说是正确的答案,对于其他任何把答案-d放在错误位置的人来说都是正确的答案。但这是错误消息的最高命中,我确信我不是唯一一个在运行后遇到此错误的人:

docker-compose up -d
Run Code Online (Sandbox Code Playgroud)

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

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

  2. 如果docker-compose没有安装,Docker 认为这是有道理的:

    $ docker compose up -d
    unknown shorthand flag: 'd' in -d
    
    Run Code Online (Sandbox Code Playgroud)

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

docker: 'compose' is not a docker command.
Run Code Online (Sandbox Code Playgroud)

-d如果您在未安装时不使用,这就是它所说的docker-compose。我现在已经安装完毕docker-compose并且一切正常,但我认为值得花时间希望为其他人避免一些麻烦,如果他们最终来到这里,因为他们有docker但没有docker-compose


Alb*_*haw 6

出于兼容性目的,我们使用了旧版本的 Docker;在旧版本中则docker-compose不是docker compose。将其更改为连字符可以解决此错误。