Что такое контейнер?

Контейнер — это хороший способ создать пакет приложения вместе со всеми его зависимостями, чтобы приложение можно было передавать между средами, а затем оно должно работать без каких-либо изменений. Контейнер в основном изолирует приложение от других приложений или от внешнего мира. Docker предоставляет нам набор инструментов для использования контейнера. В этой статье мы попытаемся понять, как установить и запустить контейнер Docker на локальной машине.

Что такое докер?

Docker — это платформа, на которой разработчики могут разрабатывать, развертывать и запускать приложения с помощью контейнеров. Проще говоря, мы можем легко настроить среду, установить необходимое программное обеспечение, а затем запустить наше приложение. Перед запуском приложения требуется много времени для настройки среды.

Контейнеры и виртуальные машины

Контейнеры — это очень легкие виртуальные машины, но есть некоторые отличия, которые вы найдете ниже.

Контейнер

Виртуальная машина

контейнер работает в Linux, а также использует ядро ​​хост-машины

ВМ или виртуальная машина работает на другой ОС, на которой находится хост-компьютер.

Для запуска контейнера требуется меньше ресурсов

Для запуска виртуальной машины требуется меньше ресурсов

Очень легкий

При работе виртуальной машины используются большие ресурсы.

Настройка среды

Теперь мы можем реализовать фактическую реализацию, поэтому для этой цели нам нужно установить докер на нашу локальную машину. Сначала необходимо проверить, доступен ли докер на вашем локальном компьютере, а если нет, следуйте инструкциям по загрузке и установке докера на вашем локальном компьютере. Вы получите установщик докеров в соответствии с вашей операционной системой. На самом деле docker — это система на базе Linux, поэтому ее очень легко установить в системах на базе Linux. Поэтому перейдите по ссылке ниже и следуйте инструкциям по установке докера https://docs.docker.com/get-started/

Команды Docker

После успешного завершения установки мы можем приступить к изучению команд докера. Итак, команды докера мы можем запускать из командной строки. Итак, сначала откройте командную строку или терминал.

версия докера

Сначала откройте терминал и выполните команду docker version.

Эта команда выдает установленную версию докера

информация о докере

Теперь запустите команду docker info

Контейнеры: 2

Работает: 0

Приостановлено: 0

Остановлено: 2

Изображения: 8

Версия сервера: 18.06.1-ce

Драйвер хранилища: overlay2

Резервная файловая система: extfs

Поддерживает d_type: правда

Нативное оверлейное различие: правда

Драйвер ведения журнала: json-файл

Драйвер группы: cgroupfs

Плагины:

Объем: местный

Сеть: хост-мост macvlan null overlay

Журнал: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog

Рой: неактивен

Время выполнения: runc

Среда выполнения по умолчанию: runc

Двоичный файл инициализации: docker-init

версия containerd: (ожидаемая: 468a545b9edcd5932818eb9de8e72413e616e86e)

версия runc: нет данных (ожидается: 69663f0bd4b60df09991c08812a60108003fa340)

версия инициализации: v0.18.0 (ожидаемая: fec3683b971d9c3ef73f284f176672c44b448662)

Параметры безопасности:

одежда

секкомп

Профиль: по умолчанию

Версия ядра: 4.15.0–43-универсальная

Операционная система: Ubuntu 18.04.1 LTS

Тип ОС: линукс

Архитектура: x86_64

Процессоры: 4

Общая память: 3,709 ГБ

Имя: amicp

ID: NLDX:GMLU:3E64:KSBK:6ZXP:YGBF:37Y2:SYK6:QNXO:YHQS:HDOC:M3TD

Корневой каталог Docker: /var/lib/docker

Режим отладки (клиент): false

Режим отладки (сервер): false

Реестр: https://index.docker.io/v1/

Ярлыки:

Экспериментальный: ложь

Небезопасные реестры:

127.0.0.0/8

Динамическое восстановление включено: false

После выполнения основных команд docker (версия docker и информация о docker) мы можем приступить к более подробному изучению docker.

образ докера ls

Эта команда выведет список образов, доступных на вашем локальном компьютере. Образ Docker включает в себя системные библиотеки, другие файлы и зависимости для исполняемого кода. Образ Docker может повторно использовать слои статического изображения для разных проектов. Мы можем загрузить изображение согласно нашему требованию.

загрузка докера

Извлеките образ или репозиторий из реестра. Большинство ваших образов будут созданы поверх базового образа из реестра https://hub.docker.com/. Docker Hub содержит множество готовых образов, которые вы можете извлечь и использовать для создания нашего приложения поверх них.

Docker вытащить nodejs

docker запускает hello-world

Это запустит образ hello-world. Это самый легкий образ. Это доступно после установки докера на локальную машину. Таким образом, используя команду запуска docker, мы можем запускать образ Docker локально.

docker container ls — все

Эта команда предоставит вам более подробную информацию, например, команды, доступные в этом докере, которые были выполнены последними. Экземпляр изображения называется контейнером. Запущенная форма образа означает контейнер. У вас может быть много запущенных контейнеров с одним и тем же образом. Вы можете видеть все свои образы с образами докеров, тогда как вы можете видеть свои запущенные контейнеры с помощью docker ps (и вы можете видеть все контейнеры с помощью docker ps -a). Таким образом, работающий экземпляр образа является контейнером.

Подведение итогов и шпаргалка

## Список команд Docker CLI

докер

докер-контейнер — помощь

## Показать версию Docker и информацию

докер — версия

докер версия

информация о докере

## Выполнить образ Docker

докер запускает привет-мир

## Получение списка образов Docker

образ докера ls

## Список контейнеров Docker (работают, все, все в тихом режиме)

докер-контейнер ls

докер-контейнер ls — все

докер-контейнер ls -aq

Поняв, как используются команды docker и как их выполнять, мы двинемся дальше.

Разработка приложения в среде Docker

Теперь мы разработаем одно приложение на основе javascript, используя докер.

Сначала создайте одну папку с образцами

Создать файл: package.json

И вставьте ниже код

{

«имя»: «docker_web_app»,

«версия»: «1.0.0»,

«описание»: «Node.js в Docker»,

«автор»: «Первый Последний ‹[email protected]›»,

«основной»: «server.js»,

«скрипты»: {

«старт»: «узел server.js»

},

«зависимости»: {

«экспресс»: «⁴.16.1»

}

}

Создать файл: server.js

Вставьте ниже код:

«использовать строгий»;

const Express = Требовать('Экспресс');

// Константы

постоянный ПОРТ = 8080;

константа HOST = ‘0.0.0.0’;

// Приложение

константное приложение = экспресс();

app.get(‘/’, (req, res) =› {

res.send («приложение тестового узла»);

});

app.listen(ПОРТ, ХОСТ);

console.log(`Выполняется на https://${HOST}:${PORT}`);

Создайте файл с именем Dockerfile

Что такое Dockerfile?

Здесь мы можем объявить или указать требования к программному обеспечению или предпосылки в соответствии с моими приложениями.

Вставьте ниже код

ОТ узла:8

# Создать каталог приложения

РАБОЧИЙ КАТАЛОГ /usr/src/app

КОПИРОВАТЬ пакет*.json ./

# Установить зависимости приложения

ЗАПУСТИТЬ установку npm

КОПИРОВАТЬ . .

ВЫСТАВИТЬ 8080

CMD [ «npm», «старт»]

Создайте файл с именем .dockerignore

Вставьте ниже код

node_modules

npm-debug.log

Создание docker-образа приложения

Откройте терминал

И запустите команду ниже

docker build -t узел-веб-приложение.

Ваш образ теперь будет указан Docker:

докер образы

Запустите образ

docker run -p 49160:8080 -d узел-веб-приложение

Здесь 49160 — это номер порта, выставленный докером для внешнего доступа.

Протестируйте приложение

Наконец, нам нужно увидеть результат, поэтому откройте браузер и введите https://localhost:49160/

Изменение кода и перестроение образа

  • Теперь измените файл server.js и сохраните изменения.
  • Снова запустите команду сборки из терминала.
  • Теперь удалите существующий контейнер докеров.
  • docker container rm ‹docker_container_id› — принудительно
  • Снова запустите образ

Преимущества Docker

  • Docker удается сократить время развертывания. Docker обеспечивает согласованность сред от разработки до производства.
  • Контейнеры Docker настроены на внутреннюю поддержку всех конфигураций и зависимостей.
  • Портативность — еще одно важное преимущество докера. Мы можем запустить любой образ докера в любой другой операционной системе или в любом облаке, таком как AWS, azure или облако Google.
  • Разработка приложения на основе микросервиса

Заключение

Это все о докере и интеграции Node API. Таким образом, мы можем создать любое приложение и интегрировать его с докером. Чтобы узнать больше о докере, посетите https://docs.docker.com/get-started/