Установка
Нужны три вещи: Docker, терминал и учебные файлы. Терминал разбирали в курсе CLI.
Что устанавливаем
Заголовок раздела «Что устанавливаем»Слово «Docker» значит несколько вещей.
| Часть | Что это |
|---|---|
| Docker Engine | Программа, которая запускает контейнеры. Работает в фоне |
| Docker CLI | Команда docker. Вы пишете её в терминале, она говорит Engine, что делать |
| Docker Compose | Команда docker compose. Запускает много контейнеров по одному файлу |
| Docker Desktop | Приложение для macOS и Windows. Внутри: Engine, CLI, Compose и окно для просмотра контейнеров |
Контейнеры Linux работают только на ядре Linux. На macOS и Windows Docker Desktop запускает маленькую виртуальную машину с Linux и держит Engine внутри неё. Вы этого не видите.
Шаг 1. Установите Docker
Заголовок раздела «Шаг 1. Установите Docker»-
Скачайте Docker Desktop с docker.com/products/docker-desktop. Выберите версию для вашего чипа: Apple Silicon (M1, M2, M3, M4) или Intel.
Или поставьте через Homebrew:
Окно терминала brew install --cask docker-desktop -
Откройте Docker Desktop из «Программ». Примите условия лицензии. Вход в аккаунт можно пропустить. Дождитесь, пока значок кита в верхнем меню перестанет мигать.
-
Проверьте установку (ниже).
На Windows Docker Desktop работает поверх WSL 2. Это Linux внутри Windows. Если вы прошли установку терминала с WSL, он уже есть.
-
Установите WSL, если его нет. Откройте PowerShell от имени администратора:
Окно терминала wsl --installПерезагрузите компьютер.
-
Скачайте Docker Desktop с docker.com/products/docker-desktop и установите. Оставьте галочку Use WSL 2 instead of Hyper-V.
-
Запустите Docker Desktop. Примите условия лицензии. Вход в аккаунт можно пропустить. Дождитесь статуса Engine running в левом нижнем углу.
-
Откройте терминал Ubuntu (WSL) из меню «Пуск». Все команды курса пишите там, а не в PowerShell.
На Linux Docker Desktop не нужен. Ставят Docker Engine напрямую.
-
Установите Docker по официальной инструкции для вашего дистрибутива: docs.docker.com/engine/install. Для Ubuntu и Debian это подключение репозитория Docker и пакеты
docker-ceиdocker-compose-plugin. -
Разрешите своему пользователю запускать Docker без
sudo:Окно терминала sudo usermod -aG docker $USER -
Выйдите из системы и войдите снова. Группа применяется только после нового входа.
Шаг 2. Проверьте установку
Заголовок раздела «Шаг 2. Проверьте установку»docker --versiondocker compose versionОтвет похож на это. Номера версий у вас будут другие:
Docker version 28.5.0, build 887030fbe8Docker Compose version v5.5.1Теперь запустите первый контейнер:
docker run --rm hello-worldDocker скачает маленький образ и запустит его. Вы увидите:
Hello from Docker!This message shows that your installation appears to be working correctly.Если вы видите это сообщение, Docker работает.
Шаг 3. Учебные файлы
Заголовок раздела «Шаг 3. Учебные файлы»cd ~curl -L -o docker-practice.tar.gz https://dataengineer.ru/assets/practice/docker-practice.tar.gztar xzf docker-practice.tar.gzcd docker-practicelsПроверка: ls показывает три имени:
README.txt app data| Файл | Что внутри |
|---|---|
data/orders.csv | 500 заказов интернет-магазина: дата, клиент, канал, сумма, статус |
app/report.py | Скрипт на Python. Печатает выручку по каналам. Нужен только Python |
app/load_orders.py | Скрипт на Python. Загружает заказы в Postgres. Нужна библиотека psycopg |
app/requirements.txt | Список библиотек для скриптов |
Посмотрите на данные:
head -3 data/orders.csvorder_id,order_date,customer_id,channel,amount,status1001,2024-02-27,110,email,261.07,completed1002,2024-02-27,76,organic,157.27,completedPython на вашем компьютере не нужен. Скрипты мы будем запускать внутри контейнеров.
Настройки ресурсов
Заголовок раздела «Настройки ресурсов»Docker Desktop использует часть памяти и процессора вашего компьютера. Для курса хватит 4 ГБ памяти. Metabase в итоговой практике любит больше. Поставьте 6–8 ГБ, если можно.
Где менять:
- macOS: Docker Desktop → Settings → Resources.
- Windows (WSL 2): в файле
%UserProfile%\.wslconfig. Напишите в нём две строки:[wsl2]иmemory=6GB. Потом выполните в PowerShellwsl --shutdownи запустите Docker Desktop снова. - Linux: настраивать не нужно. Docker берёт память системы.
Альтернативы Docker Desktop
Заголовок раздела «Альтернативы Docker Desktop»Если Docker Desktop нельзя, есть другие способы. Команды docker остаются теми же.
| Вариант | Для чего |
|---|---|
| Colima | macOS и Linux. Лёгкая виртуальная машина и Docker Engine. brew install colima docker docker-compose, затем colima start. Для docker compose подключите плагин по инструкции Colima |
| Rancher Desktop | macOS, Windows, Linux. Бесплатное приложение с окном, как Docker Desktop |
| Podman | Linux, macOS, Windows. Своя программа. Команды почти те же: podman run |
В курсе мы пишем docker. С Colima и Rancher Desktop всё работает без изменений.
Если что-то не работает
Заголовок раздела «Если что-то не работает»Cannot connect to the Docker daemon ... Is the docker daemon running?Docker Desktop не запущен. Откройте его и подождите, пока Engine запустится. На Linux:sudo systemctl start docker.permission denied while trying to connect to the Docker daemon socket(Linux). Вы не в группеdocker. Выполнитеsudo usermod -aG docker $USERи войдите в систему заново.docker: command not foundв WSL. В Docker Desktop откройте Settings → Resources → WSL integration и включите вашу Ubuntu.- Docker на Windows просит включить виртуализацию. Включите её в BIOS (Intel VT-x или AMD-V).
curl: command not found. Поставьте curl:sudo apt install -y curl.
Дальше: Что такое контейнер.