|
|||||||
|
Практическая работа
Время создания: 08.06.2026 22:35
Автор: alensav
Текстовые метки: docker
Раздел: Astra_Linux_LXC_container
Запись: alensav/MyTetra2/main/base/17809473181r5mhcr4t2/text.html на raw.githubusercontent.com
|
|||||||
|
|
|||||||
|
Практическая работа Практические команды для повседневной работы 1. Просмотр логов (самое важное!) Когда что-то не работает, первым делом смотрим логи: bash # Логи всех сервисов docker-compose logs # Логи только веб-приложения docker-compose logs web # Логи в реальном времени (как tail -f) docker-compose logs -f web # Последние 50 строк логов docker-compose logs --tail=50 web
# Логи всех сервисов docker-compose logs # Логи только веб-приложения docker-compose logs web # Логи в реальном времени (как tail -f) docker-compose logs -f web # Последние 50 строк логов docker-compose logs --tail=50 web Попробуйте прямо сейчас: bash docker-compose logs web
docker-compose logs web 2. Зайти внутрь работающего контейнера Иногда нужно "залезть" в контейнер, чтобы проверить файлы, переменные окружения или запустить команды: bash # Зайти в контейнер с веб-приложением docker-compose exec web bash # Или в контейнер с базой данных docker-compose exec db bash
# Зайти в контейнер с веб-приложениемdocker-compose exec web bash# Или в контейнер с базой данныхdocker-compose exec db bash Попробуйте: bash docker-compose exec web ls -la
docker-compose exec web ls -la (Вы увидите файлы внутри контейнера: main.py, pycache и т.д.) Чтобы выйти из контейнера: bash exit
exit 3. Проверка состояния контейнеров bash # Какие контейнеры запущены docker-compose ps # Подробная информация docker-compose ps -a # Какие порты используются docker-compose port web 8000
# Какие контейнеры запущеныdocker-compose ps# Подробная информацияdocker-compose ps -a# Какие порты используютсяdocker-compose port web 8000 4. Перезапуск и остановка bash # Остановить все контейнеры (данные сохранятся!) docker-compose down # Остановить и удалить тома (данные БД удалятся!) docker-compose down -v # Перезапустить только веб-приложение docker-compose restart web # Перезапустить всё docker-compose restart
# Остановить все контейнеры (данные сохранятся!)docker-compose down# Остановить и удалить тома (данные БД удалятся!)docker-compose down -v# Перезапустить только веб-приложениеdocker-compose restart web# Перезапустить всёdocker-compose restart 5. Практика с файлами (Hot Reload) Давайте попробуем изменить код без пересборки: Шаг 1. Откройте файл main.py в редакторе: bash nano main.py
nano main.py Шаг 2. Найдите строку: python
response = {"status": "Успех!", "message": "Сеть Docker работает! Контейнер 'db' (PostgreSQL) доступен."} Шаг 3. Измените её на: python
response = {"status": "🎉 Круто!", "message": "Я изменил код в проводнике, и он обновился в контейнере!"} Шаг 4. Сохраните (Ctrl+O, Enter, Ctrl+X) docker-compose restart web Шаг 5. Перезапустите веб-контейнер (чтобы подхватились изменения): bash
docker-compose restart web Шаг 6. Обновите страницу в браузере http://localhost:8001 Вы увидите новое сообщение! 🎉 6. Работа с базой данных Подключиться к PostgreSQL из контейнера: bash docker-compose exec db psql -U user -d mydb
docker-compose exec db psql -U user -d mydb Выполнить SQL-запрос: bash
# Создать таблицуdocker-compose exec db psql -U user -d mydb -c "CREATE TABLE test (id SERIAL, name TEXT);"# Вставить данныеdocker-compose exec db psql -U user -d mydb -c "INSERT INTO test (name) VALUES ('Привет Docker');"# Посмотреть данныеdocker-compose exec db psql -U user -d mydb -c "SELECT * FROM test;" Попробуйте прямо сейчас: bash docker-compose exec db psql -U user -d mydb -c "\dt"
docker-compose exec db psql -U user -d mydb -c "\dt" (Покажет список таблиц в базе данных) 7. Проверка томов (Volumes) Посмотреть, какие тома созданы: bash
docker volume ls Узнать详细信息 о томе с базой данных: bash
docker volume inspect level2-project_db_data Посмотреть, где физически хранятся данные: bash
# Покажет путь на диске docker volume inspect level2-project_db_data | grep Mountpoint 8. Очистка системы (когда всё надоело) bash
# Удалить все остановленные контейнеры docker container prune # Удалить все неиспользуемые образы docker image prune # Удалить всё (контейнеры, сети, образы, тома) - ОПАСНО! docker system prune -a --volumes # Посмотреть, сколько места занимает Docker docker system df 📋 Шпаргалка: Самые полезные команды Команда Что делает docker-compose up -d Запустить всё в фоне docker-compose down Остановить и удалить контейнеры docker-compose logs -f Смотреть логи в реальном времени docker-compose exec web bash Зайти в контейнер docker-compose ps Показать статус контейнеров docker-compose restart web Перезапустить веб-приложение docker-compose build Пересобрать образы 🎯 Практическое задание Попробуйте сделать это самостоятельно: ✅ Посмотрите логи веб-приложения: docker-compose logs web ✅ Зайдите внутрь контейнера с БД: docker-compose exec db bash ✅ Выполните команду внутри: psql -U user -d mydb -c "SELECT version();" ✅ Выйдите из контейнера: exit ✅ Остановите проект: docker-compose down ✅ Запустите снова: docker-compose up -d ✅ Убедитесь, что сайт работает (данные БД сохранились!) |
|||||||
|
Так же в этом разделе:
|
|||||||
|
|||||||
|
|||||||
|