Docker — это платформа, которая может “упаковать” приложение, его зависимости, middleware и так далее в так называемый “контейнер”, после чего у вас появится возможность развернуть данный контейнер на любом сервере, на котором установлен Docker — причем буквально за доли секунды, одной командой.
Благодаря этим решается сразу несколько задач — в первую очередь, процесс запуска приложения на сервере многократно упрощается, во вторую — какие-либо баги в контейнеризированном приложении никак не повлияют на сам сервер, также как и специфические настройки сервера не повлияют на приложение.
Установка и настройка Docker
Устанавливаем docker
yum install docker
После того, как установлен пакет Docker, запустите демон, проверьте его состояние:
systemctl start docker systemctl status docker
Выполняем поиск образ в репозитории докера. Найдем тестовый называется hello-world. Он выводит только сводную информацию.
docker search hello-world
Скачиваем тестовый образ к себе на компьютер и проверяем его.
docker pull hello-world
docker run hello-world
Он выводит приветствие скачавшему его. «Hello from Docker. This message shows that your installation appears to be working correctly.
Для проверки версии и информации о системы используются ключи Docker
docker version docker info
Чтобы просмотреть все доступные образы Docker на вашем компьютере, выполните следующую команду:
docker images
Если вам больше не требуется образ Docker, и вы хотите удалить его, выполните следующую команду:
docker rmi hello-world
Запуск контейнеров Docker
Когда вы выполняете команду вызова образа, вы в основном запускаете и контейнер. После выполнения команды, контейнер останавливается (вы получаете неиспользуемый или ожидающий контейнер). Если вы снова запустите другую команду даже с тем же образом, будет создан новый контейнер и так далее.
Все созданные контейнеры останутся в файловой системе пока вы не удалите их, используя команду docker rm.
Запуск интерактивного сеанса внутри контейнера
Чтобы интерактивно подключиться к сеансу оболочки контейнера и выполнить команды, как в любом другом сеансе Linux, выполните следующую команду:
docker run -it centos bash
Вышеуказанная команда интерпретируется следующим образом:
- -i используется для запуска интерактивного сеанса.
- -t выделяет tty и присоединяет stdin и stdout.
- centos — это образ, который мы использовали для создания контейнера.
- bash (или /bin/bash) — это команда, которую мы запускаем внутри контейнера CentOS.
Если вам нужно сохранить контейнер в рабочем состоянии, но выйти из интерактивного сеанса, вы можете выйти из консоли и вернуться к терминалу, нажав клавиши Ctrl + q.
Для повторного подключения к работающему контейнеру вам потребуется идентификатор или имя контейнера. Выполните команду docker ps для получения идентификатора или имени контейнера и затем выполните команду присоединения докеров, указав идентификатор или имя контейнера, как показано на изображении выше:
docker attach <контейнер id>
Чтобы остановить запущенный контейнер из сеанса, выполните следующую команду:
docker kill <контейнер id>
Что бы сохранить состояние контейнера — выполняем:
docker commit <контейнер id> centos_new
Где <контейнер id> — ID текущего контейнера, а centos_new — имя, под которым мы хотим его потом использовать:
Docker save и export — сохранение контейнера или образа
Кратко о разнице между save
и export
:
save
— создаёт копию гостевой операционной системы, аналог ISO-образа;export
— создаёт копию контейнера.
docker save centos_new > /home/docker/centos_new.tar
А теперь добавляем образ из созданной копии с помощью load
:
docker load < /home/docker/centos_new.tar
Пример Docker export
docker export b91d47a964f2 > /home/docker/centos_n.tar