Docker — это платформа, позволяющая упаковывать приложения и зависимости в единое целое, – так называемый контейнер. Эта технология упрощает развертывание и запуск приложений в локальных средах разработки, на удалённых серверах или в облаке.
Разработчики используют Docker для создания приложений изолированно друг от друга. Благодаря контейнеризации платформы они могут объединить все ресурсы в одной среде, включая ОС и необходимые библиотеки.
Так, существенно упрощается отладка, обновление и повторное развертывание приложений. Это также оптимизирует эксплуатационные расходы, позволяя пользователям запускать несколько приложений на одном веб-сервере.
Существует две вариации Docker:
Вы можете установить Docker на Ubuntu, CentOS и многие другие операционные системы с открытым исходным кодом. В данном руководстве мы расскажем, как это сделать на различные версии CentOS.
Важно! Как правило, репозиторий CentOS Extras включён по умолчанию.
Если вы уже устанавливали старые версии Docker («docker» или «docker-engine»), перед установкой новой удалите их вместе со всеми зависимостями с помощью команд:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
sudo yum check-update
curl -fsSL https://get.docker.com/ | sh
sudo systemctl start docker
sudo systemctl status docker
Если служба активна и работает, вы получите примерно следующий вывод:
Output
docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-04-18 09:03:45 DST; 6 weeks 1 days ago
Docs: https://docs.docker.com
Main PID: 749 (docker)
sudo systemctl enable docker
Готово! Теперь на вашем сервере установлен Docker.
sudo dnf install yum-utils
sudo dng config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
На выходе вы должны получить примерно следующий результат:
Docker CE Stable - x86_64 1.5 kB/s | 3.4 kB 00:03
Available Packages
docker-ce.x86_64 3:19.03.13-3.el8 docker-ce-stable
sudo dnf install docker-ce --nobest -y
sudo systemctl start docker
sudo systemctl enable docker
docker --version
На выходе вы получите ответ, похожий на:
Docker version 19.03.13, build 4484c46d9d
По умолчанию образы Docker извлекаются из Docker Hub, официального репозитория платформы. Любой может создавать и размещать там свои образы. Именно поэтому большинство приложений и дистрибутивов Linux, которые вам могут понадобиться для запуска контейнеров Docker, имеют образы, размещённые в Docker Hub.
docker run hello-world
«Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
7050e35b49f5: Pull complete
Digest: sha256:6e8b6f026e0b9c419ea0fd02d3905dd0952ad1feea67543f525c73a0a790fefb
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:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(arm64v8)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. 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
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/»
Чтобы запустить контейнер Docker и управлять им, вам в любом случае понадобится определённый образ. Вы можете искать любые образы, доступные в Docker Hub, с помощью команды docker с подкомандой search.
Например, чтобы найти образ CentOS, введите:
docker search centos
Заданная команда просканирует репозиторий и предложит вам список всех образов, имя которых соответствует строке поиска. В этом случае вывод будет примерно таким:
Output
NAME |
DESCRIPTION | STARS | OFFICIAL |
AUTOMATED |
---|---|---|---|---|
centos |
The official build of CentOS | 2224 | [OK] | |
jdeathe/centos-ssh |
ssh CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8... | 22 | [OK] | |
jdeathe/centos-ssh-apache-php |
CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... | 17 | [OK] | |
million12/centos-supervisor |
Base CentOS-7 with supervisord launcher, h... | 11 | [OK] | |
nimmis/java-centos |
This is docker images of CentOS 7 with dif... | 10 | [OK] | |
torusware/speedus-centos |
Always updated official CentOS docker imag... | 8 | [OK] | |
nickistre/centos-lamp |
LAMP on centos setup | 3 | [OK] |
К примеру:
docker pull centos
В случае успеха вы получите:
«Using default tag: latest
Trying to pull repository docker.io/centos ...
latest: Pulling from docker.io/centos
45a2e645736c: Pull complete
1c3acf573616: Pull complete
edcb61e55ccc: Pull complete
cbae31bad30a: Pull complete
aacbdb1e2a62: Pull complete
fdeea4fb835c: Pull complete
Digest: sha256:39eff7d56b96530d014083cd343f7314c23acbd1ecf37eb75a71a2f6584d0b02
Status: Downloaded newer image for docker.io/centos:latest»
docker run -it centos
В зависимости от задачи вы можете использовать разные команды для управления контейнерами. В официальных руководствах Docker можно найти полный список возможных команд, но мы в качестве примера приведём ниже только самые базовые:
Подробнее о том, как работать с контейнерами Docker, вы можете узнать в нашей статье «Что такое Docker контейнер».
Из этой статьи вы узнали о том, как установить Docker на CentOS и управлять различными контейнерами, почему он полезен при разработке программного обеспечения и как вы можете его использовать. Теперь на своём сервере вы можете уверенно пользоваться всеми преимуществами одной из самых мощных платформ контейнеризации.