Первоначально опубликовано: Блог Ashraful
Что такое Docker?
Докер Это продукт PAAS (Platform-As-A-A-Service), который использует виртуализацию уровня ОС для обеспечения программного обеспечения в качестве пакета под названием контейнер. Каждое контейнеры отделены друг от друга, и они в комплекте их собственные зависимости, но можно взаимодействовать между двумя или более контейнерами.
Почему докер?
Прежде чем я начну рассказать вам причину, я хотел бы поделиться своей собственной историей. Однажды я работал для кого-то на приложении Vuejs. После окончания моего развития я собирался доставить его. И он попросил меня одолжить развертывать приложение для него. Затем он дал мне полномочия своего VPS (MS Azure). Я думал, что это будет легко сделать это, как я сделал это раньше. Итак, не думая, что я просто вошел в Server с SSH и начните развертывание приложения в традиционном процессе. После иногда я понял Узел Версия 4. . Который очень низко для моего приложения. Итак, я обновил версию узла И тогда я был на реальных бедах. Потому что у клиента уже имели приложение Backend Nodejs, размещенные на этой машине с 4. * Узел версия. Так быстро мне пришлось понизить версию узла. Затем я поглотил миллион раз о разной версии узла. Я нашел ** NVM (узел версии версии) . Я развернул приложение Vuejs с NVM. Но я не был убежден. Через несколько дней я прочитал около ** докера *. И это звучит довольно круто для меня.
Прийти к точке, Почему докер?
Чтобы переместить программное обеспечение с сервера DEV для тестирования сервера, а затем на производственный сервер с зависимостью программного обеспечения мы будем использовать Docker. Это действительно безопасно.
Как подключить ваше приложение?
Предположим, у вас есть пособие по эксплуатации для настройки вашего приложения. И вы и ваша команда всегда следуйте руководству по настройке новых/существующих приложений. Dockerfile Это руководство по процессу для каждого приложения. Вам понадобится, чтобы написать некоторые инструкции в Dockerfile Согласно Docker Commands. Вот это ваше заявление будет готово: d. Теперь давайте напишем Docker File для приложения базового узла.
FROM node:lts-alpine as build-stage WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build FROM nginx:stable-alpine as production-stage COPY --from=build-stage /app/dist /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Все слов капитала являются встроенные команды Docker.
Из узла: LTS-Alpine как этап сборки
Каждое окно докера создано из одного или нескольких базовых изображений. В таком случае я принимаю образ узела. В большинстве случаев образы происходят из Docker Hub. . LTS-ALPINE означает, что я принимаю узел Docker Image, который выпускает тег, это LTS (длительная поддержка). И Как этап сборки Имя псевдонима.
Я думал, что я
Workdir/app.
Объявление рабочего каталога внутри контейнера Docker. Помните, что контейнер Docker — это виртуализация уровня ОС, Итак, здесь /приложение такой же, как каталог Unix, как /Главная Отказ
Копировать пакет * .json ./
Справка package.json и Package-lock.json в рабочий каталог.
Запустите NPM Install
Беги Является ли команда Docker для запуска команды Shell внутри контейнера Docker. Здесь мы собираемся установить зависимости для нашего приложения.
Копировать. Отказ
Теперь скопируйте все в рабочий каталог контейнера Docker. Если ваш любопытный разум задал вопрос Почему мы скопировали Package.json, если я сейчас справляюсь? . Тогда мой ответ будет к Установка NPM
Вам нужен файл Package.json.
Запустите NPM Run Build
Создайте свое приложение. В вашем случае это может быть отличная команда.
От Nginx: стабильная альпийская как этап производства
Как и прежде чем я потянул стабильный выпуск Nginx и назвал его в качестве производственной стадии.
Copy-Stage/App/dist/usr/share/nginx/html
Скопируйте все файлы распространения нашего приложения из /app/dist в общественный каталог Nginx. В вашем приложении /app/dist может быть разным. Но поток процесса должен быть таким же.
Выставить 80
Подвергать порту. Будьте осторожны, прежде чем вы выдержать любой порт. Вы должны иметь доступ на это. Например, предположим, что вы открыли порт 5001. Но этот порт недоступен или не используется другими. Тогда это не собирается работать.
CMD [«Nginx», «-G», «демон выключен»;
Запустите NGINX из командной строки из контейнера Docker.
Dockerfile до докера изображения
Теперь мы построим DockerFile, набрав следующую команду.
docker build -t iashraful/docker-into .
-t для тега. и точка [.] означает все.
Запустите изображение и смотрите эффект
docker run -it -d -p 5001:80 --rm --name dev-to-client iashraful/dev.to-client
Здесь -Питать Короче для —interactive + —tty, когда докер бегите с этой командой .. Это приведет вас прямо внутри контейнера, где -d короткая для —detach, что означает, что вы просто запускаете контейнер, а затем отсоедините от него Так что в основном вы запускаете контейнер на заднем плане. -П Для отображения порта машины с контейнером. Это машинный порт: контейнерный порт. —rm Средства автоматически удаляют изображение, если он существует, также удаляет анонимные тома, связанные с контейнером, когда контейнер удаляется. —name для именования контейнера.
Если все в порядке, пока теперь не откройте свой браузер и нажмите http://localhost:5001
. Вы увидите ваше приложение.
Я думаю, что это достаточно на сегодня. Я надеюсь, что следующий будет Издательство Docker Image на Docker Hub
Оригинал: «https://dev.to/ashraful/introduction-to-docker-3a9n»