我正在尝试在docker容器中运行nginx,同时安装配置和静态html文件以使其能够正常运行。据我所知,很简单的东西,但是我不断收到关于目录不是目录的错误?
我正在使用最新版本的Boot2Docker在Mac上运行此示例。
我具有以下文件夹结构:
% tree ~/Projects/Docker/nginx-example
.
??? html
? ??? test.html
??? nginx.conf
1 directory, 2 files
Run Code Online (Sandbox Code Playgroud)
的内容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
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试~/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
Run Code Online (Sandbox Code Playgroud)
最初,我曾尝试过
-v $(pwd)/html:/usr/share/nginx/html:ro使命令更短一些,但是当它不起作用时,我以为我会很明确,以防万一出现一些我不知道的时髦子壳问题。
我得到以下输出
fc41205914098d236893a3b4e20fa89703567c666ec1ff29f123215dfbef7163
Error response from daemon:
Cannot start container fc41205914098d236893a3b4e20fa89703567c666ec1ff29f123215dfbef7163:
[8] System error: not a directory
Run Code Online (Sandbox Code Playgroud)
有人对我缺少的东西有任何想法吗?
我知道使用Boot2Docker时将卷装载到容器中存在问题(尽管我被认为这早已解决)
但是无论如何,我都按照那里的指示进行操作,但仍然无法正常工作
-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命令之前将其扩展,就像数学和内部括号一样,内部子命令首先运行。
| 归档时间: |
|
| 查看次数: |
4098 次 |
| 最近记录: |