Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации. Позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесён на любую Linux-систему с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами.
Установку Docker мы будем производить на базе серверной операционной системы 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 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 , скачивать, создавать, удалять и изменять контейнеры. И самое главное, в этом нет ничего сложного.