#docker #github
#docker #github
Вопрос:
Я только начинаю узнавать о docker. Полезен ли репозиторий docker (например, Docker Hub)? Я вижу образ docker как пакет исходного кода и конфигураций среды (dockerfile) для развертывания моего приложения. Ну, если это просто пакет, почему я не могу просто поделиться своим исходным кодом с dockerfile (например, через GitHub)? Затем пользователь просто загружает все это и использует docker build
и docker run
. И нет необходимости отправлять изображение docker в репозиторий.
Комментарии:
1. В идеале, именно так это и работает, docker hub используется для push pull изображений. Так, например, если вы занимаетесь разработкой приложения и хотите иметь поддержку базы данных, вы не хотите тратить время на установку и настройку db для себя, просто извлеките изображение Mongo, sqllite, postgres и приступайте к работе. Вы также можете просто поделиться своим кодом в git, и это следует учитывать, что это не пользовательский базовый образ, который является локальным на вашем ноутбуке рабочем столе и т. Д.
Ответ №1:
Есть две веские причины предпочесть поместить изображение куда-нибудь:
- Как пользователь, работающий ниже по потоку, вы можете просто
docker run
получить изображение из репозитория, без дополнительных шагов по его проверке или сборке. - Если вы используете скомпилированный язык (C, Java, Go, Rust, Haskell, …), То изображение будет содержать только скомпилированные артефакты, а не исходный код.
Подумайте об этом, как о любом другом программном обеспечении: для большинства программ с открытым исходным кодом вы можете загрузить его исходный код из Интернета и скомпилировать его самостоятельно, или вы можете apt-get install
brew install
создать встроенный пакет с помощью менеджера пакетов.
По той же аналогии, многие вещи с открытым исходным кодом распространяются в основном как исходный код, и люди, которые не являются основным пакетом разработчика, распространяют двоичные файлы. В этом контексте это то же самое, что добавить a Dockerfile
в корень репозитория GitHub вашего приложения, но не публиковать изображение самостоятельно. Если вы не хотите настраивать учетную запись Docker Hub или CI automation для отправки созданных образов, но все же хотите, чтобы ваш исходный код и инструкции по созданию образа были общедоступными, это разумное решение.
Ответ №2:
Вот как это работает. Вам нужно поместить файлы конфигурации в свой код, то есть, Dockerfile
и . docker-compose.yml