未安装“nginx-proxy”docker镜像插槽卷

时间:2016-07-29 13:37:17

标签: docker elastic-beanstalk docker-machine

我的Dockerrun.aws.json看起来像这样:

{
    "AWSEBDockerrunVersion": 2,
    "volumes": [
        {
            "name": "docker-socket",
            "host": {
                "sourcePath": "/var/run/docker.sock"
            }
        }
    ],
    "containerDefinitions": [
        {
            "name": "nginx",
            "image": "nginx",
            "environment": [
                {
                    "name": "VIRTUAL_HOST",
                    "value": "demo.local"
                }
            ],
            "essential": true,
            "memory": 128
        },
        {
            "name": "nginx-proxy",
            "image": "jwilder/nginx-proxy",
            "essential": true,
            "memory": 128,
            "portMappings": [
                {
                    "hostPort": 80,
                    "containerPort": 80
                }
            ],
            "mountPoints": [
                {
                    "sourceVolume": "docker-socket",
                    "containerPath": "/tmp/docker.sock",
                    "readOnly": true
                }
            ]
        }
    ]
}

使用“eb local run”在本地运行会导致:

  

错误:你需要与一个卷共享你的Docker主机套接字   /tmp/docker.sock通常你应该运行你的jwilder / nginx-proxy   with:-v /var/run/docker.sock:/tmp/docker.sock:ro见   http://git.io/vZaGJ

上的文档

如果我进入我的docker机器并运行:

  

docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock   jwilder / nginx的代理

它创建容器并正确安装卷。

为什么上面的Dockerrun.aws.json配置没有正确挂载/var/run/docker.sock:/tmp/docker.sock卷?

如果我从docker-compose.yml运行相同的配置,它在本地工作正常。但是,我想使用Dockerrun.aws.json将相同的配置部署到Elastic Beanstalk:

version: '2'
services:

  nginx:
    image: nginx
    container_name: nginx
    cpu_shares: 100
    volumes:
      - /var/www/html
    environment:
      - VIRTUAL_HOST=demo.local

  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    cpu_shares: 100
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

我的本​​地设置正在使用:

  • VirtualBox 5.0.22 r108108
  • docker-machine version 0.7.0,build a650a40
  • EB CLI 3.7.7(Python 2.7.1)

1 个答案:

答案 0 :(得分:1)

您的Dockerrun.aws.json文件在我的AWS EB中运行正常(仅稍微更改它以使用我们自己的容器/主机名代替'nginx'容器)。这可能只是“eb本地运行”设置的一个问题吗?

正如你所说的在Mac上,尝试升级到在osx上本机运行docker的新docker 1.12,或者至少是更新版本的docker-machine - https://docs.docker.com/machine/install-machine/#/installing-machine-directly

相关问题