Установка Docker и Docker Compose на Ubuntu
Docker ставлю почти на каждый сервер, который держит контейнеризованные сервисы. Прохожусь по установке от нуля — подключение официального репозитория, настройка, проверка, что всё работает.
Установка Docker и Docker Compose
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Подключаю официальный репозиторий Docker — пакет из стандартных репозиториев Ubuntu обычно устаревший.
Docker Compose отдельно
Compose уже идёт в составе docker-compose-plugin, но если нужна автономная версия:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Проверка версии:
docker-compose --version
Проверка установки
docker --version
docker run hello-world
Если контейнер hello-world отработал и вывел приветствие — Docker установлен и работает корректно.
Настройка
Автозапуск при загрузке системы
sudo systemctl enable --now docker
Проверка статуса:
sudo systemctl status docker
Запуск без sudo
По умолчанию команды Docker требуют root-прав. Чтобы работать от обычного пользователя — добавляю его в группу docker:
sudo usermod -aG docker $USER
newgrp docker
После этого docker ps и другие команды работают без sudo. Нужно перелогиниться или выполнить newgrp docker, чтобы изменение группы применилось в текущей сессии.
Базовые команды
docker ps— список запущенных контейнеровdocker ps -a— список всех контейнеров, включая остановленныеdocker images— список загруженных образовdocker run -d -p 80:80 nginx— запустить контейнер с Nginx в фонеdocker stop <container_id>— остановить контейнерdocker rm <container_id>— удалить контейнерdocker rmi <image_id>— удалить образ
На этом базовая установка и настройка закончена. Следующий шаг — сборка собственных образов через Dockerfile, об этом расскажу отдельно.
Если хочешь обсудить похожую задачу — пиши на [email protected] или заходи на 1it.pro.