【问题标题】:Mounting nginx conf as a docker volume causes system error boot2docker将 nginx conf 挂载为 docker 卷会导致系统错误 boot2docker
【发布时间】:2015-10-24 03:16:25
【问题描述】:

我正在尝试在 docker 容器中运行 nginx,同时安装配置和静态 html 文件以供其使用。据我所知,非常简单的东西,但我不断收到关于目录不是目录的错误?

我正在使用最新版本的 Boot2Docker 在我的 Mac 上运行此示例。

我有以下文件夹结构:

% tree                 ~/Projects/Docker/nginx-example
.
├── html
│   └── test.html
└── nginx.conf

1 directory, 2 files

nginx.conf的内容如下:

http {
  server {
    listen *:80; # Listen for incoming connections from any interface on port 80
    server_name ""; # Don't worry if "Host" HTTP Header is empty or not set
    root /usr/share/nginx/html; # serve static files from here
  }
}

我尝试像这样运行容器(从~/Projects/Docker/nginx-example 目录中):

docker run --name nginx-container \
  -v /Users/M/Projects/Docker/nginx-example/html:/usr/share/nginx/html:ro \
  -v /Users/M/Projects/Docker/nginx-example/nginx.conf:/etc/nginx:ro \
  -P -d nginx

最初我曾尝试使用-v $(pwd)/html:/usr/share/nginx/html:ro 之类的方法来缩短命令,但当它不起作用时,我想我会明确说明,以防万一出现我不知道的一些时髦的子 shell 问题

我得到以下输出

fc41205914098d236893a3b4e20fa89703567c666ec1ff29f123215dfbef7163
Error response from daemon: 
Cannot start container fc41205914098d236893a3b4e20fa89703567c666ec1ff29f123215dfbef7163: 
[8] System error: not a directory

有人知道我错过了什么吗?

Mac Boot2Docker 卷问题?

我知道在使用 Boot2Docker 时将卷装载到容器中存在问题(尽管我相信这早已解决)

Mount volume to Docker image on OSX

但无论如何我都按照那里的说明进行操作,但它仍然没有工作

【问题讨论】:

    标签: nginx docker


    【解决方案1】:

    -v /Users/M/Projects/Docker/nginx-example/nginx.conf:/etc/nginx:ro

    您正在尝试将文件挂载到目录 - 将其更改为:

    -v /Users/M/Projects/Docker/nginx-example/nginx.conf:/etc/nginx/nginx.conf:ro 你应该没问题。看看Docker Volumes Docs中的例子

    同样,pwd 应该在路径中工作。 shell 在 docker 命令运行之前扩展它,就像数学和内括号一样,首先运行内部子命令。

    【讨论】:

    • 噢!当然 :-( 好的,当我回到笔记本电脑时,我会检查一下。谢谢!
    猜你喜欢
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多