【问题标题】:nginx container not runningnginx容器未运行
【发布时间】:2020-06-30 19:43:26
【问题描述】:

我正在尝试运行下面的命令来创建一个 nginx 容器...

正如你所看到的,我正在学习一个教程,问题是我尝试了很多命令,但总是得到相同的结果......所以这是我最近的尝试:

docker run --name nginx -d -p 80:80 --network some-network --mount type=bind,source="$(pwd)/nginx/target",target=/usr/share/nginx/html --mount type=bind,source="$(pwd)/nginx",target=/etc/nginx/conf.d,readonly nginx:latest

我也用-v 尝试过这个...我正在尝试替换 nginx 计数器上的 default.conf 配置文件...

在这种情况下,我正在尝试替换 /etc/nginx/conf.d 的内容,但我尝试将文件挂载为它自己的相同命令,但使用 ... --mount type=bind,source="$(pwd)/nginx/default.conf",target=/etc/nginx/conf.d/default.conf...

在我的一个灵感来源中,我有一个 -v,其中放置在内容上的文件的名称是 default.conf:ro,这是来自 docker-compose,我不能使用一个 atm,不确定是否:ro 正在做某事...因为当我在 docker run 上使用它时,默认文件一直是 default.conf 并且 :ro 在它旁边但未使用...

有人可以帮助我了解我在这方面缺少什么吗?

【问题讨论】:

    标签: docker nginx nginx-config


    【解决方案1】:

    您之前检查过https://hub.docker.com/_/nginx 吗?如果您不知道 --mount 的功能或工作原理,则无需使用它们的出色功能。保持简单和默认。也许很高兴知道您在哪个操作系统上工作。 Apples MacOS 与 docker 的工作方式略有不同,并且经常会出现问题。

    你应该使用-v $(pwd)/nginx/target:/usr/share/nginx/html -v $(pwd)/nginx:/etc/nginx/conf.d:ro

    【讨论】:

    • 我只选择了 mount 因为显然 -v 最终会被弃用...我在 Fedora 32 上,修复了 cgroups 问题...但仍然禁止使用 docker-compose...为什么我需要使用:ro
    • :ro 是只读的 - 您永远不想将配置从容器中更改为主机。因此,您通常在末尾使用:ro 进行此类配置。哦,Fedora,好吧,恐怕我不是很了解这个。
    • 但即使我查看 Mount 参数,我也看不出它有什么问题。或许确实是因为 Fedora 的缘故,那里还有一些问题还没有解决。
    • 我一直在做更多测试...--mount type=bind,source="$(pwd)/nginx/default.conf",target=/etc/nginx/conf.d/default.conf 这是使容器无法运行的部分...如果我有它,它已创建但不运行...如果我删除它它确实运行...但是我无法配置它...
    • 我知道与绑定有关的问题,有时也与相对路径和绝对路径有关。我通常只使用目录,因为它使事情变得更容易,而且我对它们几乎没有问题。
    【解决方案2】:

    确保您的 nginx 配置文件正确...

    在这种情况下,这就是问题所在......

    【讨论】:

      猜你喜欢
      • 2017-12-01
      • 2020-01-04
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 2022-01-13
      相关资源
      最近更新 更多