Docker — Операции с проектами
Эта страница описывает базовые операции по управлению Docker-проектами на сервере: организацию директорий, работу с файлами проектов, изменение прав доступа и создание резервных копий. Материал рассчитан на начинающих и помогает понять, как правильно хранить и обслуживать несколько Docker-проектов на одном сервере, что особенно актуально для веб-студий и хостинга клиентских проектов.
Типичная структура проектов на сервере
На серверах с несколькими сайтами или сервисами Docker-проекты обычно размещаются в одной общей директории.
Пример структуры:
/opt/flamy_projects
Внутри неё располагаются отдельные проекты:
/opt/flamy_projects
│
├─ site1
│ ├─ docker-compose.yml
│ ├─ .env
│ ├─ Dockerfile
│ └─ src
│
├─ site2
│ ├─ docker-compose.yml
│ └─ src
│
└─ api_service
├─ docker-compose.yml
└─ app
Каждый каталог — это отдельный Docker Compose проект.
Переход в директорию проекта
Перед выполнением большинства Docker-команд необходимо перейти в директорию проекта.
cd /opt/flamy_projects
Просмотреть содержимое папки:
ls -la
Когда используется
Эта команда помогает:
- убедиться, что вы работаете в нужной директории
- увидеть список проектов
- проверить наличие файлов конфигурации
Поиск docker-compose файлов
Иногда на сервере много проектов, и нужно найти все compose-файлы.
find /opt/flamy_projects -type f -name "docker-compose*.yml"
Эта команда покажет:
- все
docker-compose.yml - дополнительные файлы вроде
docker-compose.prod.yml
Пример результата:
/opt/flamy_projects/site1/docker-compose.yml
/opt/flamy_projects/site2/docker-compose.yml
/opt/flamy_projects/api_service/docker-compose.yml
Когда полезно
- аудит серверов
- поиск старых проектов
- диагностика конфигураций
Проверка файлов проекта
Перед запуском проекта полезно проверить содержимое директории.
ls -la
Пример:
docker-compose.yml
.env
Dockerfile
src/
logs/
Что важно проверить
- наличие
docker-compose.yml - наличие
.envфайла - наличие исходного кода
Если файл docker-compose.yml отсутствует — проект запустить не получится.
Изменение владельца файлов
Иногда файлы проекта принадлежат неправильному пользователю. Это может происходить, если:
- проект копировали через
root - архив был распакован другим пользователем
- файлы были перенесены с другого сервера
Исправить владельца можно так:
sudo chown -R Crimson:Crimson /opt/flamy_projects
Что означает команда
| Часть | Значение |
|---|---|
| chown | изменить владельца |
| -R | рекурсивно для всех файлов |
| Crimson:Crimson | пользователь и группа |
Назначение текущего пользователя владельцем
Иногда проще назначить владельцем текущего пользователя.
sudo chown -R $(id -u):$(id -g) /opt/flamy_projects
Что делают параметры
| Команда | Значение |
|---|---|
id -u |
ID текущего пользователя |
id -g |
ID текущей группы |
Это позволяет быстро исправить проблемы с правами.
Изменение прав доступа
Иногда Docker или приложение не может читать файлы из-за неправильных прав.
Исправить можно так:
sudo chmod -R 755 /opt/flamy_projects
Что означает 755
| Право | Значение |
|---|---|
| 7 | чтение, запись, выполнение |
| 5 | чтение и выполнение |
| 5 | чтение и выполнение |
В итоге:
- владелец может изменять файлы
- остальные пользователи могут читать и выполнять
Важно: Не стоит использовать
777, так как это даёт полный доступ всем пользователям и может быть небезопасно.
Резервное копирование проектов
Регулярное резервное копирование помогает защититься от:
- ошибок обновления
- повреждения данных
- случайного удаления файлов
Архивирование проекта
Создать архив можно с помощью tar.
tar -czf flamy_projects_backup_$(date +%Y%m%d).tar.gz /opt/flamy_projects
Что делает команда
| Часть | Значение |
|---|---|
| tar | инструмент архивирования |
| -c | создать архив |
| -z | сжать через gzip |
| -f | имя файла |
Файл будет иметь имя вроде:
flamy_projects_backup_20260311.tar.gz
Резервное копирование через rsync
rsync позволяет копировать файлы между серверами или папками.
rsync -avz /opt/flamy_projects/ backup_location/
Что означают параметры
| Параметр | Назначение |
|---|---|
| -a | архивный режим |
| -v | подробный вывод |
| -z | сжатие данных |
Пример копирования на другой сервер
rsync -avz /opt/flamy_projects user@backup-server:/backup/docker_projects
Это часто используется для:
- ежедневных backup
- синхронизации серверов
- миграции проектов
Проверка размера проекта
Иногда полезно узнать размер проекта.
du -sh /opt/flamy_projects/*
Пример вывода:
1.2G site1
850M site2
430M api_service
Это помогает определить:
- какие проекты занимают больше всего места
- где могут находиться большие логи или кэш
Проверка логов проекта
Некоторые проекты сохраняют логи внутри директории.
Например:
logs/
storage/logs
var/log
Посмотреть последние строки:
tail -n 100 logs/app.log
Типичный рабочий процесс
Обычно работа с проектом выглядит так:
1 Перейти в директорию проекта
cd /opt/flamy_projects/site1
2 Проверить файлы
ls -la
3 Запустить контейнеры
docker compose up -d
4 Проверить контейнеры
docker compose ps
5 Проверить логи
docker compose logs --tail=50
Работа с несколькими проектами
На сервере может быть десятки проектов.
Чтобы понять, какие контейнеры запущены:
docker ps
Можно увидеть:
site1_nginx
site2_php
api_service_db
Это помогает быстро определить, какие проекты работают.
Полезные советы
Храните проекты в одной директории
Это упрощает:
- резервное копирование
- администрирование
- поиск конфигураций
Используйте .env файлы
В .env удобно хранить:
- пароли
- порты
- настройки окружения
Делайте регулярные backup
Минимум раз в день для production-серверов.
Краткая памятка
cd /opt/flamy_projects # перейти в директорию проектов
ls -la # список файлов
find /opt/flamy_projects -name "docker-compose*.yml" # найти compose файлы
sudo chown -R user:user /opt/flamy_projects # изменить владельца
sudo chmod -R 755 /opt/flamy_projects # изменить права
tar -czf backup_$(date +%Y%m%d).tar.gz /opt/flamy_projects # архив проекта
rsync -avz /opt/flamy_projects/ backup/ # резервная копия
du -sh /opt/flamy_projects/* # размер проектов