未知速记标志:'d' 在 -d docker 撰写中



我正在与docker撰写工作。当试图在后台运行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


-d是子命令up的一个选项。如果你运行docker compose up --help,你会得到更多的信息。

解决问题运行docker compose up -d

接受的答案是对提问者的正确答案,其他人把-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,它会说什么。我现在已经安装了docker-compose,事情正在工作,但我认为这是值得的时间,希望为其他人节省一些麻烦,如果他们最终在这里,因为他们有docker,但没有docker-compose

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

最新更新