0

我有一个docker-compose运行静态 html 的工作示例nginx

目录树:

├── docker-compose.yml
├── nginx
│   ├── app
│   │   └── index.html
│   └── Dockerfile

docker-compose.yml:_

nginx:
  build: ./nginx
  volumes:
    - ./nginx/app:/usr/share/nginx/html
  ports:
    - 8080:80

nginx目录具有Dockerfile

FROM nginx

一切正常。

问题是我按照 Docker 文档构建了一个Docker-Swarm基础设施: 、和.docker-machineLocalswarm-mastertwo nodes

一切似乎也都很好。

$ eval $(docker-machine env --swarm swarm-master)
$[swarm-master]$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                  NAMES
d8afafeb9f05        few_nginx           "nginx -g 'daemon off"   20 minutes ago      Up 3 seconds        443/tcp, 192.168.99.102:8080->80/tcp   swarm-host-00/few_nginx_1

但是nginx正在返回一个Forbidden

$[swarm-master]$ curl http://192.168.99.102:8080/
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.9.10</center>
</body>
</html>

我进入virtualbox并进入container

$[swarm-master]$ docker-machine ssh swarm-host-00
docker@swarm-host-00:~$ docker exec -ti d8afafeb9f05 bash

目录中没有任何内容nginx/html

root@d8afafeb9f05:/# ls /usr/share/nginx/html/

是否有必要在compose/swarm中做一些不同的事情volumes?难道我做错了什么?

4

1 回答 1

0

需要将文件复制到主机或使用COPY命令将映像构建到Dockerfile

参考:https ://github.com/docker/compose/issues/2799#issuecomment-177998133

于 2016-02-02T10:31:54.607 回答