MyTetra Share
Делитесь знаниями!
Практическая работа
Время создания: 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

✅ Убедитесь, что сайт работает (данные БД сохранились!)


Так же в этом разделе:
 
MyTetra Share v.0.67
Яндекс индекс цитирования