Поиск по сайту:

Установите Docker и изучите базовые операции с контейнерами в CentOS и RHEL 8/7 — часть 1


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

Этот тип контейнеров Linux оказался быстрым, портативным и безопасным. Процессы, выполняющиеся в контейнере Docker, всегда изолированы от основного хоста, что предотвращает вмешательство извне.

Это руководство представляет собой отправную точку для установки Docker, создания и запуска контейнеров Docker в CentOS/RHEL 8/7, но лишь поверхностно описывает Docker.

Шаг 1. Установите и настройте Docker

1. Более ранние версии Docker назывались docker или docker-engine. Если они у вас установлены, вам необходимо удалите их перед установкой более новой версии docker-ce.

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2. Чтобы установить последнюю версию Docker Engine, вам необходимо настроить репозиторий Docker и установить пакет yum-utils, чтобы включить Docker. стабильный репозиторий в системе.

yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3. Теперь установите более новую версию docker-ce из репозитория Docker и containerd вручную, поскольку из-за некоторых проблем Red Hat заблокировала установку. из containerd.io > 1.2.0-3.el7, который является зависимостью от docker-ce.

yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install docker-ce docker-ce-cli

4. После установки пакета Docker запустите демон, проверьте его статус и включите его для всей системы, используя следующие команды:

systemctl start docker 
systemctl status docker
systemctl enable docker

5. Наконец, запустите тестовый образ контейнера, чтобы проверить правильность работы Docker, выполнив следующую команду:

docker run hello-world

Если вы видите сообщение ниже, значит, все на своем месте.

Пример вывода
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.
    (amd64)
 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/

6. Теперь вы можете запустить несколько основных команд Docker, чтобы получить некоторую информацию о Docker:

Для общесистемной информации о Docker
docker info

Для версии Docker
docker version

7. Чтобы получить список всех доступных команд Docker, введите docker на консоли.

docker

Шаг 2. Загрузите образ Docker

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

Например, для поиска образа Docker в Ubuntu введите следующую команду:

docker search ubuntu

9. После того, как вы определились с тем, какой образ вы хотите запустить в зависимости от ваших потребностей, загрузите его локально, выполнив приведенную ниже команду (в этом случае загружается и используется образ Ubuntu). ):

docker pull ubuntu

10. Чтобы просмотреть все доступные образы Docker на вашем хосте, введите следующую команду:

docker images

11. Если образ Docker вам больше не нужен и вы хотите удалить его с хоста, введите следующую команду:

docker rmi ubuntu

Шаг 3. Запустите Docker-контейнер

Когда вы выполняете команду над изображением, вы по сути получаете контейнер. После завершения команды, выполняющейся в контейнере, контейнер останавливается (вы получаете неработающий или завершенный контейнер). Если вы снова запустите другую команду в том же образе, будет создан новый контейнер и так далее.

Все созданные контейнеры останутся в файловой системе хоста, пока вы не решите удалить их с помощью команды docker rm.

12. Чтобы создать и запустить контейнер, вам необходимо запустить команду в загруженном образе, в данном случае Ubuntu, поэтому основной командой будет отображение файл версии распространения внутри контейнера с помощью команды cat, как в следующем примере:

docker run ubuntu cat /etc/issue

Приведенная выше команда разделена следующим образом:

docker run [local image] [command to run into container]

13. Чтобы снова запустить один из контейнеров с помощью команды, которая была выполнена для его создания, сначала необходимо получить ID контейнера (или имя, автоматически сгенерированное Docker). выполнив приведенную ниже команду, которая отображает список запущенных и остановленных (неработающих) контейнеров:

docker ps -l 

14. После получения ID контейнера вы можете снова запустить контейнер с помощью команды, которая использовалась для его создания, введя следующую команду:

docker start 923a720da57f

Здесь строка 923a720da57f представляет собой ID контейнера.

15. Если контейнер находится в рабочем состоянии, вы можете получить его ID, введя команду docker ps. Чтобы остановить работающий контейнер, выполните команду docker stop, указав ID контейнера или автоматически сгенерированное имя.

docker stop 923a720da57f
OR
docker stop cool_lalande
docker ps

16. Более элегантной альтернативой, позволяющей не запоминать ID контейнера, было бы присвоение уникального имени каждому создаваемому вами контейнеру с помощью - -name в командной строке, как в следующем примере:

docker run --name ubuntu20.04 ubuntu cat /etc/issue

17. Затем, используя имя, присвоенное контейнеру, вы можете манипулировать контейнером (запустить, остановить, удалить, top, stats) и далее, просто указав его имя, как в примерах ниже:

docker start ubuntu20.04
docker stats ubuntu20.04
docker top ubuntu20.04 

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

Шаг 4. Запуск интерактивного сеанса в контейнере

18. Чтобы интерактивно подключиться к сеансу оболочки контейнера и запускать команды, как и в любом другом сеансе Linux, введите следующую команду:

docker run -it ubuntu bash

Приведенная выше команда разделена следующим образом:

  1. -i используется для запуска интерактивного сеанса.
  2. -t выделяет TTY и присоединяет стандартный ввод и вывод.
  3. ubuntu — это образ, который мы использовали для создания контейнера.
  4. bash (или /bin/bash) — это команда, которую мы запускаем внутри контейнера Ubuntu.

19. Чтобы выйти и вернуться на хост из работающего сеанса контейнера, необходимо ввести команду exit. Команда exit завершает все процессы контейнера и останавливает их.

exit

20. Если вы вошли в интерактивный режим терминала контейнера и вам необходимо сохранить контейнер в рабочем состоянии, но выйти из интерактивного сеанса, вы можете выйти< консоль и вернитесь в хост-терминал, нажав клавиши Ctrl+p и Ctrl+q.

21. Чтобы повторно подключиться к работающему контейнеру, вам понадобится ID или имя контейнера. Введите команду docker ps, чтобы получить ID или имя, а затем запустите команду docker Attach, указав контейнер ID или имя, как показано на изображении выше:

docker attach <container id>

22. Чтобы остановить работающий контейнер из сеанса хоста, введите следующую команду:

docker kill <container id>

Это все, что касается базовых манипуляций с контейнерами. В следующем уроке мы обсудим, как сохранить, удалить и запустить веб-сервер в контейнере Docker.