Справка по Docker: Создание файла Docker и образа для приложения Node.js

Я новичок в докере и следовал руководствам на веб-сайте докера по локальной установке boot2docker и созданию собственных образов для приложений Node с помощью их руководства (https://docs.docker.com/examples/nodejs_web_app/). Я смог успешно завершить это, но у меня есть следующие вопросы:

(1) Должен ли я использовать эти образы Node Docker (https://registry.hub.docker.com/_/node/) вместо CentOS6 для основы моего образа Docker? Я предполагаю, что учебник по Docker устарел?

(2) Если я должен основываться на образах Node Docker, есть ли у кого-нибудь какие-либо мысли о том, лучше ли использовать тонкий или обычный официальный образ узла. Я бы предположил, что slim будет лучшим выбором, но я не понимаю, почему существует несколько версий.

(3) Я не хочу, чтобы мои образы Docker включали исходные файлы моего приложения Node.JS непосредственно в образ и, следовательно, должны были заново создавать мои образы при каждой фиксации. Вместо этого я хочу, чтобы мой контейнер Docker извлек исходный код из моего частного репозитория Git при запуске для определенного коммита. Это возможно? Могу ли я использовать что-то вроде точки входа, чтобы указать свои учетные данные и зафиксировать при запуске контейнера Docker, чтобы он затем запускал сценарий оболочки для извлечения кода, а затем запускал приложение узла?

(4) Я могу в конечном итоге запустить несколько разных контейнеров Docker на одних и тех же хостах EC2. Я предполагаю, что было бы предпочтительнее убедиться, что все контейнеры основаны на одном и том же дистрибутиве Linux? Это помешает мне загружать несколько версий при первом запуске экземпляра и запуске разных контейнеров?

Спасибо!


person AnDev123    schedule 30.11.2014    source источник


Ответы (1)


Было бы лучше задать 4 отдельных вопроса, а не помещать все это в один вопрос. Но:

1) Да, используйте образ узла.

2) «Обычный» образ включает в себя различные библиотеки разработки, которых нет в тонком образе. Используйте обычный образ, если вам нужны эти библиотеки, в противном случае используйте тонкий. Более подробная информация о библиотеках находится здесь https://registry.hub.docker.com/_/buildpack-deps/

3) Вам, вероятно, было бы лучше поместить код в контейнер данных, который вы добавляете в контейнер с --volumes-from. Дополнительную информацию об этом методе можно найти здесь: https://docs.docker.com/userguide/dockervolumes/.

4) Я не понимаю этот вопрос. Обратите внимание, что у amazon теперь есть контейнерное предложение: https://aws.amazon.com/ecs/.

person Adrian Mouat    schedule 30.11.2014