Docker давно перестал быть «модной штукой для девопсов». Сегодня Docker — это база: на нём крутятся сайты, API, базы данных, боты, сервисы и целые бизнесы. Но даже опытные специалисты регулярно ищут одно и то же: как подключиться к контейнеру (docker connect), как починить docker daemon, где лежат docker файлы, как правильно сделать docker настройку и что делать, если вылез очередной docker error.
Эта статья — большая IT-шпаргалка по Docker. Не учебник и не маркетинговый текст, а практический справочник в формате «docker how to»: команды, примеры, типовые ошибки и реальные сценарии для работы на docker server.
Для кого:
- сисадмины и DevOps
- разработчики
- владельцы VPS и серверов
- те, кто только осваивает Docker на Ubuntu или Windows
Как работает Docker: архитектура без лишней теории
Docker состоит из нескольких ключевых компонентов:
- Docker daemon — сервис, который реально запускает контейнеры
- Docker CLI — команды, которые вы вводите
- Docker images — шаблоны приложений
- Docker containers — запущенные экземпляры
Когда вы вводите команду docker run, она уходит в docker daemon, который уже решает, что и как запускать.
Если docker daemon не работает — Docker не работает вообще.
Установка Docker Ubuntu: правильный и безопасный вариант
Самый популярный запрос — установка docker ubuntu. Ниже — рабочий вариант для серверов и VPS.
Обновляем систему
apt update && apt upgrade -y
Устанавливаем Docker
apt install -y docker.io
Запускаем docker daemon
systemctl start docker systemctl enable docker
Проверяем
docker --version docker info
Если docker info не работает — проблема почти всегда в docker daemon.
Docker daemon: запуск, проверка, типовые проблемы
Проверка статуса
systemctl status docker
Перезапуск docker daemon
systemctl restart docker
Типовые ошибки docker daemon
- не хватает памяти
- переполнен диск
- повреждён overlay2
Первое, что делаем — смотрим логи:
journalctl -u docker
Docker на Windows: что важно понимать
Docker Windows работает через Docker Desktop и WSL2. Это не нативный Linux Docker.
Особенности:
- контейнеры работают внутри WSL
- пути к docker файлам отличаются
- производительность ниже, чем на Linux
Для обучения и разработки — нормально. Для docker server в продакшене — используйте Linux.
Посмотреть Docker: базовая диагностика
Информация о системе
docker info
Список контейнеров
docker ps docker ps -a
Список образов
docker images
Использование диска
docker system df
Это минимальный набор, чтобы посмотреть docker и понять, что происходит.
Работа с контейнерами: основные команды
Запуск контейнера
<a href="https://it-apteka.com/docker-compose-ustanovka-komandy-i-nastrojka-kontejnerov/" target="_blank" rel="noopener" data-wpil-monitor-id="526">docker run nginx</a>
Фоновый режим (docker server сценарий)
docker run -d nginx
Именованный контейнер
docker run -d --name web nginx
Проброс портов
docker run -d -p 8080:80 nginx
Docker connect: как подключиться к контейнеру
Один из самых частых запросов — docker connect.
Подключение через exec
docker exec -it web <a class="wpil_keyword_link" href="https://it-apteka.com/tag/bash/" title="Bash" data-wpil-keyword-link="linked" data-wpil-monitor-id="225">bash</a>
Если bash отсутствует
docker exec -it web sh
Используется для отладки, диагностики и ручных правок.
Логи контейнеров и docker error
Просмотр логов
docker logs web
Логи в реальном времени
docker logs -f web
Типовые docker error
- Cannot connect to the Docker daemon
- Port is already allocated
- No space left on device
Логи — первое место, куда нужно смотреть.
Docker файлы и структура хранения данных
Все docker файлы и данные по умолчанию хранятся в:
/var/lib/docker
Не редактируйте содержимое вручную — используйте официальные механизмы.
Volumes: правильное хранение данных
Создание volume
docker volume create data
Подключение volume
docker run -d -v data:/app/data myapp
Volumes — обязательны для баз данных и stateful-сервисов.
Docker postgres: правильный запуск базы данных
Docker postgres — классический сценарий.
Быстрый запуск (НЕ для продакшена)
docker run -d -e POSTGRES_PASSWORD=secret postgres
Продакшен-вариант с volume
docker run -d \ --name postgres \ -e POSTGRES_PASSWORD=secret \ -v pgdata:/var/lib/postgresql/data \ -p 5432:5432 \ postgres
Docker network и connect между контейнерами
Создание сети
docker network create backend
Контейнеры в одной сети
docker run -d --name db --network backend postgres docker run -d --name app --network backend myapp
Контейнеры могут общаться по имени — это ключевая часть docker connect.
Docker yml и Docker Compose
Docker yml позволяет описывать инфраструктуру как код.
Пример docker-compose.yml
version: "3"
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: postgres
environment:
POSTGRES_PASSWORD: secret
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
Запуск
docker-compose up -d
Docker настройка для продакшена
- используйте restart policies
- ограничивайте CPU и RAM
- не храните пароли в docker yml
- используйте отдельные сети
Очистка Docker и обслуживание сервера
Удалить неиспользуемое
docker system prune
Полная очистка (осторожно)
docker system prune -a
Docker how to: быстрые ответы
- Как перезапустить контейнер? — docker restart
- Как обновить образ? — docker pull
- Как автозапуск? — restart: always
Заключение
Docker — мощный инструмент, но только при правильном использовании.
Эта шпаргалка создана, чтобы:
- меньше гуглить
- быстрее решать docker error
- уверенно управлять docker server
IT-Аптека рекомендует: сохранить эту страницу и использовать как настольную инструкцию.


