Что такое Докер? Как родился Докер? Зачем использовать Докер? Как установить Докер? Как работает Докер? Общие команды

1. Зачем использовать

В хороший день, вы присоединились к новому проекту и, конечно же, очень нетерпеливы. С волнением прочитал README.md некоторое время, видя, как этот проект устанавливает так много вещей. То есть php, затем npm, redis, mysql, elasticsearch… У каждого своя версия, куча библиотек и куча других вещей. Подумав немного, сколько времени нужно, чтобы поискать в гугле и установить дюжину таких вещей?

Босс, мне нужно утро, чтобы подготовиться.

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

Босс, мне нужен дополнительный день, чтобы подготовиться. -_-

Устали от времени, устали от побочных эффектов, но не можете сосредоточиться на главном, ик.
➡Вот тогда вам и стоит подумать о Docker, он сделает все намного проще.

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

2. Процесс формирования

Прежде всего, давайте немного поговорим об истории:

2.1 Что такое контейнеризация?

Долгое время модель сервера обычно была:

Проблема здесь в растрате ресурсов

  • На сервер можно установить только одну ОС
  • Даже если у вас огромный жесткий диск и оперативная память, вы этим не воспользуетесь.

Затем появилась технология виртуализации.

Возможно, вы слышали о названии Virtualbox или VMware, верно, это то, что это такое. С помощью этой технологии на физическом сервере мы можем установить несколько ОС и лучше использовать ресурсы. Например:

Вы устанавливаете Ubuntu на свой компьютер для программирования, а затем устанавливаете VirtualBox, чтобы иметь возможность:

  • Установите Windows 10 — иногда играйте в игры.
  • Установите CenOS — попробуйте RedHat ветку Linux

Что на компьютере у вас установлено множество операционных систем для разных целей.

Но проблема возникает снова.

О ресурсах:

  • Когда вы включаете виртуальную машину на VitualBox, вам нужно исправить жесткий диск и оперативные ресурсы с реальной машины, чтобы поставить их на виртуальную машину.
  • Включите виртуальную машину, а затем оставьте ее в покое, реальная машина не может повторно использовать данный ресурс.
  • Например, при создании виртуальной машины с оперативной памятью 2 ГБ на реальной машине с оперативной памятью 6 ГБ теперь у реальной машины будет только 6–2 = 4 ГБ оперативной памяти, даже если виртуальная машина не использует выделенные 2 ГБ оперативной памяти, это напрасно тратить. сборы.

О времени. Запуск и завершение работы виртуальной машины занимает много времени, возможно, до нескольких минут.

На следующем этапе эволюции родилась технология контейнеризации.

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

Затем выделяйте ресурсы только при необходимости, чтобы использование ресурсов было более оптимальным. Самой большой изюминкой контейнеризации является то, что она использует контейнеры, и инженер Google сказал:

Его использует ведущая технологическая компания, демонстрируя преимущества и надежность этой технологии. Давайте использовать это!

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

Программное обеспечение и программы будут упакованы в контейнеры с помощью Container Engine (инструмент бережливой виртуализации, устанавливаемый на хост-ОС).

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

  • Создайте среду, содержащую все необходимое для работы программного обеспечения.
  • Не зависит от факторов, связанных с системной средой.
  • Не влияет на остальную систему.

Вы можете понять, что ruby, rails, mysql... упакованы в один или несколько контейнеров, ваше приложение запускается в контейнерах, в которых уже есть все необходимое для выполнения, не затронутое. извне и также не влияет извне.

Процессы в контейнере изолированы от процессов других контейнеров в той же системе, но все эти контейнеры совместно используют ядро ​​хост-ОС (используя одну и ту же хост-ОС).

Это открытая платформа для программистов и системных администраторов, упрощающая создание, доставку и запуск приложений. Например, если у вас есть Java-приложение, вам не нужно устанавливать JDK на реальную машину для запуска этого приложения, просто найдите соответствующий контейнер для приложения, включите его, позвольте приложению работать в среде этого контейнера, это нормально. . Когда он не используется, выключите или удалите контейнер, это не повлияет на ваше реальное устройство.

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

  • Гибкость: развертывание в любом месте благодаря зависимости приложения от уровня ОС, а также удаленной инфраструктуре.
  • Быстро. Благодаря общей операционной системе контейнеры можно создавать практически мгновенно. Это отличается от vagrant, который создает виртуальную среду на аппаратном уровне, поэтому загрузка занимает больше времени.
  • Легкий: Контейнер также использует одни и те же образы вместе, поэтому он не требует много дисков.
  • Последовательность. Когда несколько разработчиков работают над одним и тем же проектом, разницы в среде нет.
  • Инкапсуляция. Можно скрыть среду, включая приложение, в пакете, называемом контейнером. Можно тестировать контейнеры. Удалить или воссоздать контейнер очень просто.

Недостатки:

Из-за той же ОС, если в ядре хост-ОС есть дыра, это повлияет на все контейнеры, содержащиеся в хост-ОС.

2.3 Рождение Докера

В технологии виртуализации мы можем использовать инструменты Virtualbox или VMware, но что использовать для контейнеризации? Что использует Google? О, я не знал, у каждой крупной компании есть способ использовать эту технологию, и у них есть частный исходный код.

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

Благодаря стремительному использованию контейнеров в сочетании с огромными преимуществами, которые они предлагают, софтверный гигант Microsoft не хочет упустить эту возможность, выпустив новую функцию под названием Контейнер Windows.

3. Как установить?

Docker поддерживает множество различных платформ операционных систем, включая Linux, Windows и даже Mac. Кроме того, Docker также поддерживает многие известные облачные сервисы, такие как Microsoft Azure или Amazon Web Services.

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

Пока я не увидел, насколько хорош Docker, Microsoft и Docker работали вместе, но это не звучало так хорошо, потому что ядро ​​Windows не было открытым исходным кодом.

До сих пор при установке Docker на Windows или Mac Docker устанавливал виртуальную машину Linux на реальную машину, и Docker работал на основе этой виртуальной машины Linux.

Docker выпускается в двух версиях: CE (для разработчиков, небольших групп и программистов, таких как мы) и EE (для бизнеса).

Я представлю установку для версии CE на Ubuntu через репозиторий следующим образом:

Подготовка:

# Update the apt package index:
$ sudo apt-get update

# Install packages to allow apt to use a repository over HTTPS:
$ sudo apt-get install \
 apt-transport-https \
 ca-certificates \
 curl \
 software-properties-common

# Add Docker’s official GPG key:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# Verify that you now have the key with the fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, by searching for the last 8 characters of the fingerprint.
$ sudo apt-key fingerprint 0EBFCD88
pub   4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <[email protected]>
sub   4096R/F273FCD8 2017-02-22

# Use the following command to set up the stable repository
$ sudo add-apt-repository \
 "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
 $(lsb_release -cs) \
 stable"

Установите Docker CE:

## Update the apt package index:
$ sudo apt-get update

## Install the latest version of Docker CE, or go to the next step to install a specific version. Any existing installation of Docker is replaced.
$ sudo apt-get install docker-ce

## Verify that Docker CE is installed correctly by running the hello-world image.
$ sudo docker run hello-world

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

Также вы можете обратиться к настройкам на домашней странице.

4. Как это работает?

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

У Docker есть две основные концепции, которые нужно понять: образы и контейнеры:

Контейнер:

  • Похоже на виртуальную машину, появляется при запуске образа.
  • Скорость запуска контейнера намного выше, чем скорость запуска виртуальной машины, и вы можете комфортно запускать 4,5 контейнера, не опасаясь зависания.
  • Файлы и настройки, используемые в контейнере, сохраняются, повторно используются и в совокупности называются образами докера.

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

  • Этот образ не является физическим файлом, он содержится только в Docker.
  • Образ содержит операционную систему (Windows, CentOS, Ubuntu, …) и предустановленные среды программирования (httpd, mysqld, nginx, python, git, …).

Docker Hub — это место для хранения и обмена этими файлами изображений (в настоящее время около 300 000 изображений). Вы можете найти и загрузить изображения, которыми люди уже делятся в Интернете, или вы можете создать свое собственное изображение.

5. Команды докера

Стандартный и наиболее полный, вы просто обращаетесь к домашней странице документации по докеру. Также в этой статье будут приведены самые основные команды:

1. Получите образ из Docker Hub

sudo docker pull image_name

2. Создайте новый контейнер, запустив образ со следующими параметрами:

sudo docker run -v <forder_in_computer>: <forder_in_container> -p <port_in_computer>: <port_in_container> -it <image_name> /bin/bash

Например:

sudo docker pull ubuntu: 16.04
sudo docker run -it ubuntu: 16.04/bin/bash

Теперь вы успешно настроили виртуальную среду Ubuntu. Команда для отображения информации о ядре Ubuntu:

uname -a

Некоторые из наиболее распространенных команд для использования:

docker images: Lists available images
docker rmi {image_id/name}: Delete an image
docker ps: Lists running containers
docker ps -a: Lists disabled containers
docker rm -f {container_id/name}: Delete a container
docker start {new_container_name}: Start a container
docker exec -it {new_container_name} /bin/bash: Access to running container

6. Продолжение следует

Эта часть 1 в основном знакомит с теорией, давайте вместе разберемся, что такое Docker и какова природа Docker. В процессе написания статей мне нужно узнать больше, а также осознать много нового. Если у вас есть какие-либо комментарии или предложения, пожалуйста, оставьте комментарий ниже!

Во второй части я буду:

  • Объясните подробнее команду (-it, /bin/bash, …)
  • Как создать Dockerfile
  • Как создать Docker Compose, настроить, … Добро пожаловать на чтение.

##########################################

😃 😃 😃 Спасибо за внимание 😃 😃 😃

Ссылка

Вибло Хоан Ки
https://docs.docker.com