docker system prune
docker exec -it <имя_контейнера или его id> /bin/bash
docker exec -it <имя_контейнера или его id> powershell
Получает имена всех сервисов в Docker Swarm.
Проходит по каждому из них.
Принудительно обновляет (перезапускает) каждый сервис.
docker service ls --format '{{.Name}}' | xargs -n1 docker service update --force
sudo docker build -t zenbody-backend .
sudo docker run -p 8000:8000 zenbody-backend
Docker (для удобного деплоя)
zenbody/
├─ frontend/
│ ├─ Dockerfile
│ ├─ package.json
│ ├─ public/
│ └─ src/
├─ backend/
│ ├─ Dockerfile
│ ├─ requirements.txt
│ └─ app.py
├─ docker-compose.yml
├─ .github/
│ └─ workflows/
│ └─ deploy.yml
└─ README.md
Соберём два контейнера:
frontend (React → статические файлы, будет собираться и отдаваться Nginx).
backend (FastAPI + Uvicorn).
version: "3.9"
services:
backend:
build: ./backend
container_name: calorie-backend
ports:
- "8000:8000"
environment:
- PYTHONUNBUFFERED=1
restart: always
frontend:
build: ./frontend
container_name: calorie-frontend
ports:
- "80:80"
restart: always
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]
# build stage
FROM node:18 AS build
WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm install
COPY . .
RUN npm run build
# production stage
FROM nginx:stable-alpine
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Запуск бэка и фронта с помощью композа
docker compose up --build -d
🔁 Пересоздать без пересборки образов
docker compose up -d --force-recreate
🔧 Пересоздать с пересборкой образов
docker compose up -d --build docker compose build --no-cache #Если нужно установить новые зависимости
🔄 Полное обновление (если есть image: из registry)
docker compose pull
docker compose up -d
💥 Полное удаление контейнеров и зависимостей
Остановить и удалить всё:
docker compose down
Остановить + удалить контейнеры + сети + тома:
docker compose down --volumes --remove-orphans
⚠️ --volumes удалит базы данных внутри контейнерных volume’ов — осторожно!
✅ Настройки в docker-compose.yml
Пример с автоматическим рестартом и зависимостями:
version: "3.9"
services:
backend:
build: ./backend
container_name: backend
restart: always
ports:
- "8000:8000"
depends_on:
- frontend
- db
frontend:
build: ./frontend
container_name: frontend
restart: always
ports:
- "3000:3000"
db:
image: postgres:15
container_name: database
restart: always
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
POSTGRES_DB: appdb
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
⚙️ Чистка лишнего
Удаление всех неиспользуемых контейнеров/образов/томов:
docker system prune -a --volumes
⚠️ Удалит всё, что не используется нигде.
💡 Рекомендуемый рабочий процесс обновления
Если менялись только .env или файлы в build context:
docker compose down
docker compose up -d --build
Если используешь образы из DockerHub (ключ image:):
docker compose pull
docker compose up -d
docker cp 1893c8e32eac:/tmp/mongo.tgz /data/tmp/data
1893c8e32eac:/tmp/mongo.tgz - id контейнера и путь до файла
/data/tmp/data - путь до сервера
docker cp "E:\PAW\backup\backup_2025_10_29_13_32_10\mongo\mongo.zip" a0281234a92c:/
version: '3.8'
services:
mongo:
image: mongo:7
container_name: mongo
restart: always
ports:
- "27017:27017" # 🔥 проброс порта наружу
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: secret
volumes:
- mongo_data:/data/db # 💾 чтобы данные сохранялись между перезапусками
volumes:
mongo_data: