【问题标题】:"nginx-proxy" docker image socket volume not mounted“nginx-proxy”泊坞窗图像套接字卷未安装
【发布时间】:2016-12-04 06:14:25
【问题描述】:

我的 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 与:-v /var/run/docker.sock:/tmp/docker.sock:rohttp://git.io/vZaGJ的文档

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

docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy

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

为什么上面的 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 版本 0.7.0,构建 a650a40
  • EB CLI 3.7.7 (Python 2.7.1)

【问题讨论】:

  • 边问:你还在用virtualbox和docker机器吗?
  • 我在发布这个问题时,现在使用 Kitematic / Docker for Mac。问题依然存在..

标签: docker amazon-elastic-beanstalk docker-machine


【解决方案1】:

对我来说,您的 Dockerrun.aws.json 文件在 AWS EB 中运行良好(只是稍作更改以使用我们自己的容器/主机名代替“nginx”容器)。可能只是“eb local run”设置的问题吗?

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

【讨论】:

    猜你喜欢
    • 2019-09-19
    • 2020-06-22
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 2018-12-15
    • 1970-01-01
    相关资源
    最近更新 更多