【问题标题】:docker-compose with docker-swarm under docker-machine not mounting volumesdocker-compose 在 docker-machine 下使用 docker-swarm 不安装卷
【发布时间】:2016-02-01 11:25:19
【问题描述】:

我有一个有效的 docker-compose 示例运行带有 nginx 的静态 html。

目录树:

├── 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-machine 构建了一个Docker-Swarm 基础架构:Localswarm-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>

我进入virtualboxcontainer

$[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 做一些不同的事情吗?我做错了吗?

【问题讨论】:

    标签: docker docker-compose docker-machine docker-swarm


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-09
      • 2015-08-18
      相关资源
      最近更新 更多