Учебники

7) Докер Учебник

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

Изображение докера

В отличие от виртуальных машин, которые могут взаимодействовать с оборудованием хоста (например, адаптер Ethernet для создания большего количества виртуальных адаптеров) контейнеры Docker работают в изолированной среде поверх операционной системы хоста. Даже если ваш хост работает под управлением ОС Windows, вы можете запускать образы Linux в контейнерах с помощью Hyper-V, который автоматически создает небольшую виртуальную машину для виртуализации базового образа системы, в данном случае Linux.

На этом тренинге по докеру вы узнаете

Docker Architecture

Давайте поговорим об основных компонентах Docker в Docker Architecture

Docker Engine

Docker — это приложение типа клиент-сервер, что означает, что у нас есть клиенты, которые ретранслируют на сервер. Итак, демон Docker называется: dockerd — это механизм Docker, который представляет сервер. Демон docker и клиенты могут быть запущены на одном и том же или на удаленном хосте, и они взаимодействуют через двоичный файл клиента командной строки, а также полный RESTful API для взаимодействия с daemon: dockerd.

Docker Images

Изображения Docker являются «исходным кодом» для наших контейнеров; мы используем их для создания контейнеров. На них может быть предварительно установлено программное обеспечение, что ускоряет развертывание. Они портативны, и мы можем использовать существующие изображения или создавать свои собственные.

реестры

Докер хранит изображения, которые мы создаем в реестрах. Есть государственные и частные реестры. Компания Docker имеет публичный реестр, называемый Docker Hub , где вы также можете хранить изображения в частном порядке. Docker Hub содержит миллионы изображений, которые вы можете начать использовать сейчас.

Контейнеры Docker

Контейнеры являются организационными единицами Docker. Когда мы создаем образ и запускаем его; мы бежим в контейнере. Контейнерная аналогия используется из-за переносимости программного обеспечения, которое мы запускаем в нашем контейнере. Мы можем перемещать его, другими словами, «отправлять» программное обеспечение, изменять, управлять, создавать или избавляться от него, уничтожать его так же, как грузовые корабли могут делать с реальными контейнерами.

Проще говоря, изображение — это шаблон, а контейнер — это копия этого шаблона. Вы можете иметь несколько контейнеров (копий) одного изображения.

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

Диаграмма архитектуры докера

Что у нас есть несколько команд докеров docker pull, docker run … мы поговорим об этом позже.

Установка Docker в Linux.

Чтобы установить docker, нам нужно использовать пакеты DEB команды Docker. Для этого, во-первых, нам нужно установить несколько обязательных пакетов.

Шаг 1 ) Добавление обязательных пакетов Ubuntu

$ sudo apt-get install \
apt-transport-https \
ca-certificates curl \
software-properties-common

* знак «/» не обязателен, он используется для новой строки, при желании вы можете написать команду без использования «/» только в одной строке.

Шаг 2) Добавьте ключ Docker GPG

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Шаг 3) Добавление хранилища Docker APT

$ sudo add-apt-repository \ 
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \ 
$(lsb_release -cs) \
stable"

Вам может быть предложено подтвердить, что вы хотите добавить хранилище и автоматически добавить ключ GPG хранилища на ваш хост.

Команда lsb_release должна заполнить версию дистрибутива Ubuntu вашего хоста.

Шаг 4) Обновление источников APT

$ sudo apt-get update

Теперь мы можем установить сам пакет Docker.

Шаг 5) Установка пакетов Docker в Ubuntu

$ sudo apt-get install docker-ce

Приведенная выше команда устанавливает Docker и другие дополнительные необходимые пакеты. До Docker 1.8.0 имя пакета было lxc-docker, а между Docker 1.8 и 1.13 имя пакета было docker-engine.

ПРИМЕЧАНИЕ. Для запуска Docker для Windows требуется Windows 10 Pro или Enterprise версии 14393 или Windows Server 2016 RTM.

Примеры основных команд Docker

Самая основная команда, которую мы должны выполнить после установки Docker, это $ docker info, как мы уже говорили ранее.

$ sudo docker info

Вы должны получить аналогичный или следующий результат

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

$ sudo docker pull alpine

With this command we are telling docker to download the image alpine, to pull it from the public registry, the latest version which is set by default.

*alpine is a minimal Docker image based on Alpine Linux with a complete package index and only 5 MB in size.

If we want to run the image as a container, we will use the following command.

$ sudo docker run -i -t alpine /bin/bash

If we run the command, we will be sent directly to the alpine’s terminal. The -i flag keeps STDIN open from the container, even when you are not attached to it. This persistent standard input is one half of what you require for an interactive shell. The -t flag is the other half and which instructs Docker to assign a pseudo-tty to the container. This offers us an interactive shell in the new container. We exit the container with a simple exit command.

Now we can try running an Ubuntu image.

$ sudo docker run -it ubuntu /bin/bash

You can notice docker checks for the image locally, and if it’s not there, the image is pulled from the image library automatically, and once again we have an interactive shell running. We can also name the containers as we run them.

$ sudo docker run –-name our_container -it ubuntu /bin/bash

and we exit again.

We can also run container we previously created, without an interactive shell.

$ sudo docker start container_name

And stop the container writing docker stop container_name

$ sudo docker stop container_name

If we want to see all running containers, we just run

$ docker ps

And for all containers we add «- a»at the end of this same command, like this docker ps -a.

This command shows Container’s ID, which image is using when was created, running status, exposed ports and randomly generated name for the container for easier management.

When we run containers, we would also like to know how much resources they are using, for that purpose we can use the command.

$ docker stats

You can also see which images we have downloaded locally and info about them.

$ sudo docker images

The command displays the docker image with a tag which shows our image version, a distinctive image ID, when was created and image size.

FAQ

⚡ What is Virtualization?

Earlier, the process for deploying a service was slow and painful. First, the developers were writing code; then the operations team would deploy it on bare metal machines, where they had to look out for library versions, patches, and language compilers for the code to work. If there were some bugs or errors, the process would start all over again, the developers would fix it, and then again the operational team was there to deploy.

There was an improvement with the creation of Hypervisors. Hypervisors have multiple Virtual machines or VMs on the same host, which may be running or turned off. VMs decreased the waiting time for deploying code and bug fixing in a big manner, but the real game changer was Docker containers.

❓ Why use Docker?

  • Docker — это компьютерное программное обеспечение, используемое для виртуализации, чтобы на одном хосте работало несколько операционных систем.
  • Docker — это тип клиент-серверного приложения, что означает, что у нас есть клиенты, которые ретранслируют на сервер
  • Изображения Docker являются «исходным кодом» для наших контейнеров; мы используем их, чтобы построить
  • Dockerfile имеет два типа реестров: 1) публичные и 2) частные.
  • Контейнеры являются организационными единицами объема Docker. Проще говоря, изображение — это шаблон, а контейнер — это копия этого шаблона. Вы можете иметь несколько контейнеров (копий) одного изображения.

✔️ Дайте важные команды Docker

команда Описание
информация о докере Информационная команда
тяга докера Скачать изображение
Окно запуска -i -t image_name / bin / bash Запустите изображение как контейнер
Докер запускает наш_контейнер Начать контейнер
остановка докера имя_ контейнера Стоп контейнер
докер PS Список всех запущенных контейнеров
статистика докера Контейнерная информация
докер изображения Список загруженных изображений
Очистка Докера Убить все работающие контейнеры.