Начало работы, часть 1: ориентация и настройка
Добро пожаловать! Мы очень рады, что вы хотите изучить Docker. Учебник Docker Get Started учит, как:
- Настройка среды Docker (на этой странице)
- Создание образа(image) и запуск его как один контейнер.
- Масштабируйте приложение для запуска нескольких контейнеров
- Распределите приложение через кластер
- Службы стека, добавив базу данных
- Разверните приложение для производства
Концепции Docker
Docker - это платформа для разработчиков и системных администраторов для разработки, развертывания и запуска приложений с контейнерами. Использование контейнеров Linux для развертывания приложений называется контейнеризацией.
Контейнеры становятся все более популярными, поскольку контейнеры:
- Гибкость: даже самые сложные приложения могут быть контейнерными.
- Легкий: Контейнеры используют и совместно используют ядро хоста.
- Взаимозаменяемый: вы можете развертывать обновления и обновления на лету.
- Portable: вы можете создавать локально, развертываться в облаке и работать в любом месте.
- Масштабируемость. Вы можете увеличивать и автоматически распространять реплики контейнеров.
- Stackable: вы можете выполнять стек вертикально и «на лету».
Образы(images) и контейнеры(containers)
Контейнер запускается путем запуска образов(images). Образы представляет собой исполняемый пакет, включающий все необходимое для запуска приложения - код, среду выполнения, библиотеки, переменные среды и файлы конфигурации.
Контейнер представляет собой экземпляр времени выполнения образа(image) - то, что образ загруженный в памяти при выполнении (то есть образ с состоянием или пользовательский процесс). Вы можете увидеть список ваших запущенных контейнеров с помощью команды docker ps
, как и в Linux.
Контейнеры и виртуальные машины
Контейнер запускается изначально на Linux и разделяет ядро хост-машины на другие контейнеры. Он выполняет дискретный процесс, не занимая больше памяти, чем любой другой исполняемый файл, делая его легким.
Напротив, виртуальная машина (VM) запускает полномасштабную «гостевую» операционную систему с виртуальным доступом к ресурсам хоста через гипервизор. В общем, виртуальные машины обеспечивают среду с большим количеством ресурсов, чем требуется большинству приложений.
Подготовьте свою среду Docker
Установите поддерживаемую версию Docker Community Edition (CE) или Enterprise Edition (EE) на поддерживаемой платформе.
https://docs.docker.com/install/
Test Docker version
Запустите docker --version
и убедитесь, что у вас есть поддерживаемая версия Docker:
docker --version
Docker version 17.12.0-ce, build c97c6d6
Запустите информацию о докере или (докерную версию без -), чтобы просмотреть еще более подробную информацию о вашей установке докера:
docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 17.12.0-ce
Storage Driver: overlay2
...
Чтобы избежать ошибок разрешения (и использования sudo), добавьте пользователя в группу докеров.
Установка тестового docker
Проверьте, что ваша установка работает, запустив простой образ Docker, hello-world:
docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
Список образов hello-world, загруженный на ваш компьютер:
docker image ls
Список контейнеров hello-world (порожденный образом), который выйдет после отображения его сообщения. Если он все еще работает, вам не понадобится опция -all:
docker container ls --all
CONTAINER ID IMAGE COMMAND CREATED STATUS
54f4984ed6a8 hello-world "/hello" 20 seconds ago Exited (0) 19 seconds ago
Список команд:
## Список Docker CLI commands
docker
docker container --help
## Display Docker version and info
docker --version
docker version
docker info
## Выполнение Docker образа
docker run hello-world
## Список Docker images
docker image ls
## Список Docker containers (running, all, all in quiet mode)
docker container ls
docker container ls --all
docker container ls -aq
Заключение первой части
Контейнер делает CI / CD бесшовным. Например:
- приложения не имеют системных зависимостей
- обновления могут быть перенесены в любую часть распределенного приложения
- плотность ресурсов может быть оптимизирована.
С Docker масштабирование вашего приложения связано с разворачиванием новых исполняемых файлов, а не с использованием мощных хостов VM.