Docker. Установка и первый контейнер. Часть 2
1. Установка Docker
Linux (Ubuntu/Debian)
-
Обновите пакеты:
1apt update && sudo apt upgrade -y
-
Установите зависимости:
1apt install -y apt-transport-https ca-certificates curl software-properties-common
-
Добавьте GPG-ключ Docker:
1curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
-
Добавьте репозиторий Docker:
1echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
-
Установите Docker:
1apt update && apt install -y docker-ce docker-ce-cli containerd.io
-
Проверьте установку:
1docker --version
-
Делаем автозапуск сервиса
1systemctl enable docker
Если необходимо, то добавляем не рутового пользователя в групу докер
1usermod -aG docker linuxuser
Скрипт для установки Docker
🚫 Всегда проверяйте скрипты, загруженные из Интернета, прежде чем запускать их локально.
Предварительный просмотр шагов сценария перед запуском. Вы можете запустить сценарий с опцией
--dry-run
, чтобы узнать, какие шаги будут выполнены при вызове сценария
1curl -fsSL https://get.docker.com -o get-docker.sh
2sh ./get-docker.sh --dry-run
Windows/macOS
- Скачайте Docker Desktop с официального сайта.
- Запустите установщик и следуйте инструкциям.
- После установки откройте терминал и проверьте версию:
1docker --version
2. Первая команда docker run
Теперь запустим первый контейнер. Для примера возьмём образ hello-world
.
Выполните команду:
1docker run hello-world
Что произойдёт?
- Docker проверит, есть ли образ
hello-world
локально. - Если образа нет, он скачает его из Docker Hub.
- После загрузки создаст и запустит контейнер.
- Контейнер выведет приветственное сообщение и завершит работу.
Пример вывода:
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
3. Что именно произошло? Разбираем шаги
Шаг 1: Поиск образа
Docker сначала ищет образ hello-world
в локальном хранилище. Если его нет, происходит загрузка из Docker Hub.
Шаг 2: Загрузка образа (если нужно)
Вы увидите сообщение:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
Шаг 3: Создание контейнера
Docker создаёт контейнер на основе образа. Контейнер — это “экземпляр” образа с изолированной файловой системой и процессами.
Шаг 4: Запуск и выполнение
Контейнер запускается, выполняет свою задачу (вывод сообщения) и завершается.
Шаг 5: Проверка статуса
После завершения контейнер останавливается, но остаётся в системе. Проверить это можно командой:
1docker ps -a
Вы увидите что-то вроде:
CONTAINER ID IMAGE COMMAND CREATED STATUS
a1b2c3d4e5f6 hello-world "/hello" 2 minutes ago Exited (0) 2 minutes ago
4. Основные команды для старта
Команда | Описание |
---|---|
docker ps |
Список запущенных контейнеров |
docker ps -a |
Список всех контейнеров |
docker images |
Список загруженных образов |
docker rm <ID> |
Удалить контейнер |
docker rmi <image> |
Удалить образ |
Для удаления Docker
1apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
1rm -rf /var/lib/docker
2rm -rf /var/lib/containerd
1rm /etc/apt/sources.list.d/docker.list
2rm /etc/apt/keyrings/docker.asc
5. Что дальше?
Теперь, когда Docker установлен и первый контейнер запущен, можно переходить к более сложным вещам:
- Создание своего образа через
Dockerfile
. - Запуск веб-сервера (например,
nginx
). - Работа с томами (Volumes) для сохранения данных.
Вывод
✅ Docker установлен и работает.
✅ Первый контейнер успешно запущен.
✅ Вы понимаете, как Docker ищет образы и создаёт контейнеры.
Следующий шаг — попробовать запустить что-то полезное, например:
1docker run -d -p 80:80 nginx
И открыть http://localhost
в браузере.