2014-10-27 4 views
0

У меня есть докер-контейнер, работающий на эластичном бобовом стебле. Внутри этого контейнера я хочу запустить другие контейнеры с помощью демона докеров, запущенного на ОС хоста.Докер в докере на AWS Эластичный бобовый станок

Как я прочитал здесь http://blog.docker.com/category/demos/, это возможно, если первый контейнер вызывается:

docker run -it -v /var/run/docker.sock:/var/run/docker.sock <image_name>

Могу ли я сделать Beanstalk вызвать мой контейнер таким путем?

ответ

0

К сожалению, Amazon Elastic Beanstalk принимает политику «один контейнер на VM», что является довольно ограничивающим.

Возможно, это обходное решение, но это будет пустой тратой времени.

Вы должны использовать Amazon EC2, если вам нужно это сделать.

Вы можете настроить новый экземпляр Docker за менее чем 5 минут!

+0

Удивительно, может ли dockerun.aws.json отображать/var/запускать в другое место. – aldrinleal

1

Да, возможно, но YMMV. Вот краткое изложение:

Dockerrun.aws.json позволяет сопоставлять произвольные пути в ваш контейнерный путь. Таким образом, вы можете сопоставитьхостов (который содержит docker.sock) в темпе. Вот шаги:

Убедитесь, что вы получили каталог промежуточной

В вашем dockerfile:

RUN mkdir /run-data 

Убедитесь Dockerrun.aws.json содержит это:

{ 
    "AWSEBDockerrunVersion": "1", 
    "Logging": "/app/log", 
    "Volumes": [ 
     { 
      "HostDirectory": "/var/run", 
      "ContainerDirectory": "/run-data" 
     } 
    ] 
} 

Затем /run-data/docker.sock будет содержать подходящую док-станцию ​​для запуска команд. С этого момента вы можете обратиться к докере api и поговорить с ним напрямую

Счастливая стыковка!