Docker Help: Создание Dockerfile и образа для приложения 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 против обычного официального узла. Я бы предположил, что Slim будет лучшим выбором, но я не понимаю, почему существует несколько версий.

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

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

Спасибо!

1 ответ

Решение

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

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

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

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

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

Другие вопросы по тегам