Как установить Docker и Docker Compose на Ubuntu — пошаговая инструкция

    Команда Simple-Server
    10.03.2026
    11 мин

    Введение

    Docker — это платформа для разработки, доставки и запуска приложений в контейнерах. Контейнеры позволяют упаковать приложение со всеми зависимостями и запускать его в любой среде одинаково. Docker Compose — инструмент для запуска многоконтейнерных приложений с помощью одного YAML-файла.

    В этом руководстве мы установим Docker и Docker Compose на Ubuntu и рассмотрим основные команды.

    Установка Docker

    Шаг 1: Удаление старых версий

    sudo apt remove docker docker-engine docker.io containerd runc 2>/dev/null || true

    Шаг 2: Установка зависимостей

    sudo apt update sudo apt install -y ca-certificates curl gnupg lsb-release

    Шаг 3: Добавление GPG-ключа Docker

    sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg

    Шаг 4: Добавление репозитория

    echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

    Шаг 5: Установка Docker Engine

    sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

    Шаг 6: Проверка установки

    sudo docker run hello-world

    Если вы видите сообщение «Hello from Docker!», установка прошла успешно.

    Шаг 7: Запуск Docker без sudo

    sudo usermod -aG docker $USER newgrp docker

    После этого выйдите и войдите заново, чтобы изменения вступили в силу.

    Основные команды Docker

    Управление контейнерами

    # Запуск контейнера docker run -d --name myapp -p 8080:80 nginx # Список запущенных контейнеров docker ps # Список всех контейнеров docker ps -a # Остановка контейнера docker stop myapp # Запуск остановленного контейнера docker start myapp # Удаление контейнера docker rm myapp # Логи контейнера docker logs myapp # Вход в контейнер docker exec -it myapp bash

    Управление образами

    # Скачать образ docker pull ubuntu:22.04 # Список образов docker images # Удалить образ docker rmi nginx # Очистка неиспользуемых образов docker image prune -a

    Создание собственного образа

    Dockerfile

    Создайте файл Dockerfile:

    FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm install --production COPY . . EXPOSE 3000 CMD ["node", "server.js"]

    Сборка и запуск

    # Сборка образа docker build -t myapp:latest . # Запуск docker run -d -p 3000:3000 myapp:latest

    Docker Compose

    Docker Compose устанавливается автоматически как плагин Docker. Проверьте:

    docker compose version

    Пример: Веб-приложение + База данных

    Создайте файл docker-compose.yml:

    version: '3.8' services: web: ```bash image: nginx:alpine ports: - "80:80" volumes: - ./html:/usr/share/nginx/html depends_on: - db restart: unless-stopped ```bash db: ```bash image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: securepassword MYSQL_DATABASE: myapp MYSQL_USER: appuser MYSQL_PASSWORD: apppassword volumes: - db_data:/var/lib/mysql restart: unless-stopped ```bash phpmyadmin: ```bash image: phpmyadmin:latest ports: - "8080:80" environment: PMA_HOST: db PMA_USER: root PMA_PASSWORD: securepassword depends_on: - db restart: unless-stopped ```bash volumes: db_data:

    Команды Docker Compose

    # Запуск всех сервисов docker compose up -d # Остановка docker compose down # Просмотр логов docker compose logs -f # Перезапуск одного сервиса docker compose restart web # Пересборка и запуск docker compose up -d --build

    Пример: WordPress + MySQL

    version: '3.8' services: wordpress: ```bash image: wordpress:latest ports: - "80:80" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wpuser WORDPRESS_DB_PASSWORD: wppassword WORDPRESS_DB_NAME: wordpress volumes: - wp_data:/var/www/html restart: unless-stopped ```bash db: ```bash image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: wordpress MYSQL_USER: wpuser MYSQL_PASSWORD: wppassword volumes: - db_data:/var/lib/mysql restart: unless-stopped ```bash volumes: wp_data: db_data: bash docker compose up -d

    WordPress будет доступен на http://your_server_ip.

    Полезные советы

    Автоматический запуск Docker при старте системы

    sudo systemctl enable docker

    Очистка неиспользуемых ресурсов

    # Удаление остановленных контейнеров, неиспользуемых сетей и образов docker system prune -a # Проверка занятого места docker system df

    Ограничение ресурсов контейнера

    docker run -d --name myapp \ --memory="512m" \ --cpus="1.0" \ -p 8080:80 nginx

    Заключение

    Docker и Docker Compose значительно упрощают развёртывание и управление приложениями. Контейнеризация обеспечивает изоляцию, воспроизводимость и простоту масштабирования. С помощью Docker вы можете быстро поднять любой стек технологий — от простого веб-сервера до сложной микросервисной архитектуры.

    🐳 Совет: Для работы с Docker рекомендуем VPS с минимум 4 ГБ RAM и NVMe-дисками для быстрой работы контейнеров. Выбрать VPS для Docker →

    VPS для Docker

    Мощные VPS для запуска Docker-контейнеров.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация или чистый VPS без панели?

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны