Что такое контейнер?
Контейнер — это хороший способ создать пакет приложения вместе со всеми его зависимостями, чтобы приложение можно было передавать между средами, а затем оно должно работать без каких-либо изменений. Контейнер в основном изолирует приложение от других приложений или от внешнего мира. 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/