Docker --volume不会将文件夹安装到Nginx容器中

时间:2019-12-16 00:40:00

标签: docker nginx

我正在尝试学习一些docker命令(没有Dockerfile,并且我在ubuntu上)。我首先使用此命令:

.data
array1 WORD 5 DUP(?)
.code

main proc
mov eax, 0
mov ecx, 5
mov edi, offset array1 ; points to array
mov eax, input("Enter 5 numbers: ")
****NEXT*****

main endp
end main

然后,当我打开http://192.168.99.100(这是我的虚拟机IP)时,在浏览器中,它将显示nginx的默认页面。

然后我停止容器并尝试以下命令:

docker container run -p 80:80 nginx:latest

我在浏览器http://192.168.99.100中打开,并收到403 Forbidden错误。我的控制台显示:

dock container run --volume /home/mazoo/DockerExampleFolder/html:/usr/share/nginx/html -p 80:80 nginx:latest

我也尝试http://192.168.99.100/1.html(1.html是我计算机上/ home / mazoo / DockerExampleFolder / html文件夹内的html文件,该文件夹在逻辑上应装入容器),我在浏览器和Windows Server 2003中收到404 Not Found错误我的控制台上看到此错误:

2019/12/16 00:23:56 [error] 6#6: *1 directory index of "/usr/share/nginx/html/" is forbidden, client: 192.168.99.1, server: localhost, request: "GET / HTTP/1.1", host: "192.168.99.100"

错误显示“ / usr / share / nginx / html”没有将1.html文件从我的主机接收到容器中。

然后我在容器中尝试其他路径:

[error] 6#6: *1 open() "/usr/share/nginx/html/1.html" failed (2: No such file or directory), client: 192.168.99.1, server: localhost, request: "GET /1.html HTTP/1.1", host: "192.168.99.100"

但是当我浏览http://192.168.99.100时,它显示了默认的nginx欢迎页面(我的html文件夹中有index.html,因此我希望默认的欢迎页面应被覆盖),并再次为http://192.168.99.100/1.html收到未找到错误。

似乎出于某些原因,我的文件夹未安装到容器中。

2 个答案:

答案 0 :(得分:0)

首先使用以下名称启动docker容器:

dock container run --name nginx --volume /home/mazoo/DockerExampleFolder/html:/usr/share/nginx/html -p 80:80 nginx:latest

然后进入正在运行的容器以进行探索。

docker exec -it nginx bash

在/ usr / share / nginx /中检查所需的文件和所有权。

我怀疑这是权限问题。


使用命名卷:

docker rm nginx  ## clean up from earlier, if needed

docker volume create nginx-data

docker run --name nginx --rm -v nginx-data:/usr/share/nginx/html nginx:latest

容器外部:

cd /var/lib/docker/volumes/nginx-data/_data/

答案 1 :(得分:0)

答案是这样的

在Oracle VM VirtualBox共享文件夹设置中,我的“主目录”被映射为“主机主目录”,因此而不是

int main (...)
{
  Piece MyPiece = new Rook( );
  MyPiece->Start(1, 1);
  free MyPiece ( );

  return 0;
}

应该是

dock container run --name nginx --volume /home/mazoo/DockerExampleFolder/html:/usr/share/nginx/html -p 80:80 nginx:latest

在路径中表示的不是“ home”,而是“ hosthome”