Рубрики
Uncategorized

Введение в докер

Новичок дружественное представление докера. Помечено с докером, дежопами, начинающими, контейнерами.

Первоначально опубликовано: Блог 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»