Docker – програмне забезпечення для автоматизації розгортання та управління додатками в середовищах із підтримкою контейнеризації. Дає змогу “упакувати” застосунок з усім його оточенням і залежностями в контейнер, який можна перенести на будь-яку Linux-систему з підтримкою cgroups у ядрі, а також надає середовище з управління контейнерами.
нсталяцію Docker ми будемо проводити на базі серверної операційної системи Ubuntu 20.04
Для установки вам понадобится выделенный либо виртуальный сервер с установленной Ubuntu 20.04
Для інсталяції вам знадобиться виділений або віртуальний сервер зі встановленою Ubuntu 20.04
Інсталяція
Перед початком інтеграції оновимо базу пакети
sudo apt update
Наступним кроком буде встановлення необхідних пакетів для коректної роботи docker
sudo apt install apt-transport-https ca-certificates curl software-properties-common
Додаємо ключ GPG офіційного репозиторію Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Підключаємо репозиторій Docker
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
Після додавання нового репозиторію обов’язково оновимо базу пакетів, інакше при виконанні команди встановлення система не знатиме що цей пакет доступний
sudo apt update
Приступимо до встановлення Docker
sudo apt install docker-ce
Після інсталяції Docker перевіримо, чи запущений демон
sudo systemctl status docker
Після виконання команди ви повинні отримати приблизно таке
docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset>
Active: active (running) since Fri 2020-07-10 09:11:13 UTC; 31s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 55695 (dockerd)
Tasks: 9
Memory: 37.1M
CGroup: /system.slice/docker.service
└─55695 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/con>
На цьому інсталяція Docker завершена.
Запуск першого Docker контейнера
Образи контейнерів Docker завантажуються з Docker Hub
Завантажимо тестовий контейнер hello-world
docker run hello-world
Після виконання команди почнеться завантаження образу і його встановлення
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:d58e752213a51785838f9eed2b7a498ffa1cb3aa7f946dda11af39286c3db9a9
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
The Docker client contacted the Docker daemon.
The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Для пошуку образів у Docker Hub використовується команда search і ключове слово пошуку. Наприклад, виведення всіх контйєнерів, у яких згадується web
docker search web
Ви отримаєте наступний список
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
php While designed for web development, the PHP … 5354 [OK]
django Django is a free web application framework, … 976 [OK]
redmine Redmine is a flexible project management web… 896 [OK]
drupal Drupal is an open source content management … 779 [OK]
mongo-express Web-based MongoDB admin interface, written w… 725 [OK]
jetty Jetty provides a Web server and javax.servle… 338 [OK]
Для того щоб завантажити потрібний контейнер, достатньо виконати pull і вказати ім’я контейнера
docker pull php
Після завантаження контейнера його потрібно буде запустити командою run
docker run php
Ще одна команда, яка може стати вам у пригоді, – перегляд завантажених образів.
docker images
Вона виводить усі образи, які були завантажені на сервер
REPOSITORY TAG IMAGE ID CREATED SIZE
php latest da48a8a02f6e 11 hours ago 405MB
hello-world latest bf756fb1ae65 6 months ago 13.3kB
Як простий приклад роботи з контейнерами, я покажу вам, як запустити ubuntu в контейнері під ubuntu, під’єднатися до контейнера і встановити програму в контейнері.
Інсталяція контайнер з ubuntu
docker pull ubuntu
Запускаємо контенер з ubuntu і підключаємося до нього в командний рядок
docker run -it ubuntu
Після підключення в контейнер ви побачите запрошення такого вигляду
root@997d1ad717ec:/#
Тепер ми перебуваємо в контейнері і можемо встановлювати все, що нам може знадобитися. Давайте встановимо консольний файловий менеджер mc, але перед встановленням обов’язково оновимо список пакетів
apt-get update
apt-get install mc
Для того щоб вийти з контейнера, достатньо виконати команду exit
exit
Керування контейнерами docker
Перегляд списку активних контейнерів
docker ps
Результат буде наступний
CONTAINER ID IMAGE COMMAND CREATED
Перегляд контейнерів системи
docker ps -a
Ця команда виведе приблизно такий текст
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
997d1ad717ec ubuntu "/bin/bash" About an hour ago Exited (1) About a minute ago interesting_lamarr
3f2b8dd64649 php "docker-php-entrypoi…" About an hour ago Exited (0) About an hour ago zealous_ritchie
2ac5f9e2f820 hello-world "/hello" 2 hours ago Exited (0) 2 hours ago hopeful_kilby
Список останніх створених контейнерів
docker ps -l
Запуск контейнера проводиться командою start + ID контейнера або ім’я контейнера . Для прикладу запустимо контейнер з ubuntu його ID 997d1ad717ec , а ім’я interesting_lamarr
docker start 997d1ad717ec
Тепер командою docker ps перевіримо статус контейнера
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
997d1ad717ec ubuntu "/bin/bash" About an hour ago Up 39 seconds interesting_lamarr
Для зупинки контейнера виконаємо команду docker stop + ID або ім’я контейнера
docker stop interesting_lamarr
Для видалення контейнера використовується команда docker rm + ID або ім’я контейнера
docker rm interesting_lamarr
Тепер ви вмієте інсталювати Docker, завантажувати, створювати, видаляти і змінювати контейнери. І найголовніше, в цьому немає нічого складного.