UNIXAWESOME

Docker. Установка и первый контейнер. Часть 2

#docker #container

1. Установка Docker

Linux (Ubuntu/Debian)

  1. Обновите пакеты:

    1apt update && sudo apt upgrade -y
  2. Установите зависимости:

    1apt install -y apt-transport-https ca-certificates curl software-properties-common
  3. Добавьте GPG-ключ Docker:

    1curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
  4. Добавьте репозиторий 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
  5. Установите Docker:

    1apt update && apt install -y docker-ce docker-ce-cli containerd.io
  6. Проверьте установку:

    1docker --version
  7. Делаем автозапуск сервиса

    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

  1. Скачайте Docker Desktop с официального сайта.
  2. Запустите установщик и следуйте инструкциям.
  3. После установки откройте терминал и проверьте версию:
1docker --version

2. Первая команда docker run

Теперь запустим первый контейнер. Для примера возьмём образ hello-world.

Выполните команду:

1docker run hello-world

Что произойдёт?

  1. Docker проверит, есть ли образ hello-world локально.
  2. Если образа нет, он скачает его из Docker Hub.
  3. После загрузки создаст и запустит контейнер.
  4. Контейнер выведет приветственное сообщение и завершит работу.

Пример вывода:

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 установлен и первый контейнер запущен, можно переходить к более сложным вещам:

Вывод

✅ Docker установлен и работает.
✅ Первый контейнер успешно запущен.
✅ Вы понимаете, как Docker ищет образы и создаёт контейнеры.

Следующий шаг — попробовать запустить что-то полезное, например:

1docker run -d -p 80:80 nginx

И открыть http://localhost в браузере.

Reply to this post by email ↪