Разработчики

ДОКЕР I

Вводное руководство по докеру для разработчиков

Что такое Docker и почему вы должны его использовать?

Если вы разработчик или человек DevOps, возможно, вы потратили много времени и могли столкнуться с различными ошибками при настройке среды разработки или рабочей среды. Это становится более утомительной работой, когда ее нужно настроить в разных системах, работающих под разными операционными системами, поскольку вы можете столкнуться с разными типами ошибок в каждой ОС. Следующее возможное решение, которое приходит на ум большинству из вас, — это использование виртуальных машин (виртуальных машин), да, это одно из возможных решений, но что, если для каждого из ваших приложений требуется другая ОС, вам снова придется настроить большее количество виртуальные машины, которые потребуют от вас установки соответствующей ОС на каждом из этих экземпляров. Итак, опять же, даже этот путь становится утомительным.

Итак, какое решение?

Здесь в игру вступает Докер. Docker – это набор продуктов платформы как услуги (PaaS), которые используют виртуализацию на уровне ОС для предоставления программного обеспечения в пакетах, называемых Containers.

Контейнерыизолированы друг от друга и объединяют свое программное обеспечение, библиотеки и файлы конфигурации. Они взаимодействуют друг с другом по четко определенным каналам.

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

Docker — это платформа для разработчиков, системных администраторов и сотрудников DevOps, позволяющая разрабатывать, развертывать и запускать приложения с контейнерами. Это часто называют Cонтейнеризацией. Здесь, в докере, вы можете разрабатывать множество приложений без необходимости настраивать виртуальные машины. Используя докер, вам нужно настроить среду только один раз. Затем вы можете преобразовать настройку контейнера в образ и использовать его в любой ОС, в которой установлен докер.

Теперь давайте приступим к делу и запачкаем руки докером.

Теперь, когда у нас есть представление о том, что делает докер, давайте углубимся! Для начала нам нужно установить docker-ce в нашей системе. Docker CE доступен для всех основных операционных систем, включая macOS, Windows и Linux. Конкретные шаги, необходимые для установки Docker CE в вашей системе, можно найти по адресу https://docs.docker.com/install/.

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

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

$ docker

Эта команда отобразит список со всеми параметрами, доступными для команды docker, вместе с описанием. В результате вы должны увидеть что-то похожее на следующее:

Затем используйте следующие команды, чтобы проверить установленную версию Docker. Приведенная ниже команда показывает только версию и сборку установленного docker ce.

$ docker -version

Следующая команда показывает всю информацию о докере, т. е. как о клиенте, так и о версии движка докера.

$ docker version

Запуск первого контейнера

Теперь, когда докер запущен и работает, мы готовы выбрать образ, чтобы запустить наш первый контейнер. Чтобы запустить экземпляр контейнера из ранее существовавшего образа, выберите образ из списка образов Docker в Docker Hub.

Допустим, сначала мы хотим запустить веб-сервер Nodejs Express. Введите поисковый запрос «узел». Будет представлен список результатов:

Нажмите на изображение node, чтобы увидеть страницу сведений, там мы можем увидеть «docker pull node», мы будем использовать эту команду для извлечения образа докера:

Давайте загрузим образ узла в наш локальный механизм докера. Чтобы получить изображение, выполните следующую команду:

$ docker pull node

Это извлечет образ узла из Docker Hub и сохранит его в нашем механизме Docker. Теперь, если вы введете «образы докеров», он отобразит образ узла.

$ docker images

Давайте затем запустим контейнер с образом узла, который мы только что вытащили.

$ docker run -it -p 3000:3000 node bash

Команда docker run позволяет запускать любой образ Docker в качестве контейнера. В этом примере мы используем следующие параметры:

  • -it : запускает контейнер в интерактивном режиме (дайте нам доступ к его терминалу).
  • -p 3000:3000: с помощью параметра -p мы подключаем внутренний порт 3000 контейнера к внешнему порту 3000. Затем мы можем отправить HTTP-запрос на сервер с нашего локального компьютера, открыв URL-адрес http:/ /докерIP:3000. Также возможно подключить внутренний порт к любому другому внешнему порту, например. подключение внутреннего порта 3000 к внешнему порту 8000 (-p 8000:3000). В этом случае нам нужно получить доступ к http://localhost:8000.
  • node it — это имя образа, который должен использовать наш контейнер.
  • bash все, что мы указываем рядом с именем изображения, рассматривается как команда, которую необходимо выполнить после запуска контейнера, здесь мы просим контейнер запустить команду bash, чтобы мы могли получить доступ к терминалу контейнера.

Теперь, когда у нас есть доступ к bash внутри контейнера узла, давайте проверим версию узла и npm, которые предварительно установлены в этом образе узла, который мы вытащили. Введите следующую команду:

# node -v

# npm -v

Это возвращает что-то похожее на изображение ниже:

Теперь давайте установим редактор кода, чтобы мы могли вводить код в контейнер. Давайте установим редактор Vim. Выполните следующие команды для установки vim.

# apt-get update

# apt-get install vim

Вы должны увидеть установку vim, как показано на следующем экране:

Перейдем в каталог /usr/src/app с помощью следующей команды:

# cd /usr/src/app

теперь давайте инициализируем npm и установим экспресс, чтобы запустить сервер экспресс-узла.

# npm init -y

# npm install express

Теперь создайте файл server.js с помощью vim и введите код, как указано ниже. Чтобы создать файл, введите следующую команду в оболочке.

# vim server.js

Когда vim откроется, нажмите I, чтобы войти в режим вставки. Затем введите в редактор следующий код:

const express = require('express');
const app = express();
app.use('/',(req,res,next) => {
return res.status(200).send("WELCOME TO NODE JS EXPRESS SERVER");
});
app.listen(3000,'0.0.0.0',() => {
console.log("SERVER IS UP AND RUNNING ON PORT 3000");
});

Теперь нажмите кнопку выхода, чтобы выйти из режима редактирования, и введите:wq , чтобы сохранить и выйти из редактора Vim. Чтобы проверить, был ли создан наш файл server.js, введите следующую команду, и вы должны увидеть свой код.

# cat server.js

Давайте теперь запустим этот серверный код в нашем контейнере. Введите следующую команду, чтобы запустить код.

# node server.js

Ответ, который отображается в браузере при доступе к контейнеру по URL-адресу http://localhost:3000, должен выглядеть так, как вы можете видеть на следующем снимке экрана:

Если он не отображается на локальном хосте, не беспокойтесь, он будет работать с IP-адресом хост-компьютера. IP-адрес последних машин будет либо 192.168.99.100, либо 192.168.99.101.

Остановка контейнера

Чтобы остановить сервер, нажмите ctrl + c, а затем введите exit, чтобы выйти из контейнера. Чтобы увидеть все контейнеры, введите следующую команду.

# docker ps -a

Вывод вышеуказанной команды будет похож на изображение ниже:

# docker rm [CONTAINER_ID]

Эта команда используется для удаления остановленного контейнера. Если вы попытаетесь удалить неостановленный контейнер, он вернет ошибку.

Запуск контейнеров в автономном режиме

До сих пор мы запускали наш контейнер в интерактивном режиме. Контейнеры также можно запускать в автономном режиме, что означает, что контейнеры могут работать в фоновом режиме (не блокируя экземпляр терминала). Чтобы запустить контейнер в автономном режиме, нам нужно использовать параметр командной строки -d вместо параметра -it, как вы можете видеть на следующий:

$ docker run -d -p 80:80 ngnix

В приведенной выше команде мы используем образ Nginx вместо образа узла, который также доступен в Docker Hub. Опять же, вы можете проверить, запущен ли контейнер, используя команду docker ps. Чтобы остановить отсоединенный контейнер, вам нужно использовать следующую команду:

$ docker stop [CONTAINER_ID]

Вы также можете получить обзор уже остановленных контейнеров с помощью команды:

# docker ps -a

Джей Вишал Дж.

ЛинкедИн | Гитхаб

Спасибо :)

👋 Присоединяйтесь к FAUN сегодня и получайте похожие истории каждую неделю на свой почтовый ящик! Получайте еженедельную порцию обязательных к прочтению технических статей, новостей и руководств.

Подпишитесь на нас в Twitter🐦и Facebook👥и Instagram📷 и присоединяйтесь к нашим Facebook и Linkedin Группы💬

Если этот пост был полезен, пожалуйста, нажмите кнопку аплодисментов 👏 несколько раз, чтобы выразить свою поддержку автору! ⬇