Запустите свой проект Python непосредственно с помощью Docker.
Запустите свой проект Python непосредственно с помощью Docker.

Представьте себе сценарий, в котором вы написали код и готовы развернуть его на новом сервере. На этом сервере есть только Python2 и Python3.6, но нет Python3.12, под который адаптирован ваш код. Что вам делать?

1. Скомпилируйте и установите Python,Я не рекомендую этот метод,Во время установки,Отсутствие зависимостей сведет вас с ума,Если вы хотите использовать этот метод,Вы можете обратиться к этой статьеИзбегайте подводных камней — скомпилируйте и установите Python Невозможно построить при встрече SSL

2. Docker или docker Compose. Я настоятельно рекомендую этот метод, и его можно запустить без создания собственного образа, что эквивалентно наличию среды Python, которую вы можете использовать в любое время.

Далее давайте поделимся методом 2. Вы можете либо напрямую Использование команд Docker,ХОРОШОиспользовать Docker Compse。

Использование команд Docker

1. Откройте терминал или интерфейс командной строки.

2. перейдите в каталог проекта Python.

3. Выполните следующую команду, чтобы смонтировать каталог проекта в контейнер и использовать Docker для запуска приложения Python:

Язык кода:javascript
копировать
docker run -it --rm -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp python:3.12-alpine python your_script.py
  • -it Опция оставляет стандартный ввод контейнера открытым и выделяет псевдотерминал.
  • --rm варианты расскажут Docker Автоматически удалять его при выходе из контейнера, чтобы не оставлять бесполезный контейнер.
  • -v "$(pwd)":/usr/src/myapp Измените текущий каталог (т.е. ваш Python каталог проекта) монтировать приезжатьконтейнер /usr/src/myapp Оглавление.
  • -w /usr/src/myapp Установите рабочий каталог на /usr/src/myapp
  • python:3.12-alpine даиспользоватьиз Docker Зеркало,Здесь используется Python Python:3.12-alpine. При необходимости вы можете перейти на другие версии.,Обратитесь к предыдущей статьеВыберите правильный образ Docker для вашего проекта Python.
  • python your_script.py Выполняется ли контейнер после запуска для запуска вашего Python Скрипт.

если ты не можешь вспомнить Двоеточие (:) в докере — это хост-машина,Там есть контейнер,Вы можете прочитать предыдущую статью:Docker Навыки памяти для сопоставления отношений между хостом и контейнером

Использование Docker Compose

1. В вашем Python Создайте docker-compose.yml документ.

2. Добавьте следующий контент в docker-compose.yml файл, настройте его под свои нужды:

Язык кода:javascript
копировать
version: '3.8'
services:
  python-app:
    image: python:3.8
    volumes:
      - .:/usr/src/myapp
    working_dir: /usr/src/myapp
    command: python your_script.py
  • Здесь файл с именем python-app из Служить,использовать python:3.8 Зеркало。
  • volumes Конфигурация монтирует текущий каталог в приезжатьконтейнер. /usr/src/myapp каталог, чтобы контейнер мог получить доступ к вашему проектному документу.
  • working_dir Конфигурациянастраиватьконтейнеризрабочий каталогдля /usr/src/myapp
  • command: python your_script.py Укажите Заказ проекта при запуске Служить.

1. В терминале или интерфейсе командной строки перейдите в каталог, содержащий docker-compose.yml Каталог файлов.

2. Выполните следующую команду, чтобы запустить службу:

Язык кода:javascript
копировать
docker-compose up -d

Это будет основано на docker-compose.yml Конфигурация в файле запускает контейнер и запускает указанный Python Скрипт.-d Указывает на работу в фоновом режиме.

Вы можете использовать агент хоста, чтобы указать часовой пояс контейнера, внешние порты и т. д. Если вы не хотите каждый раз выполнять установку по протоколу, вы можете написать docker-compose.yml следующим образом:

Язык кода:javascript
копировать
version: '3.8'

services:
  auto_reserve:
    image: python:3.12-alpine
    container_name: auto_reserve
    restart: always
    environment:
      - TZ=Asia/Shanghai
      - http_proxy=http://172.17.0.1:7890
      - https_proxy=http://172.17.0.1:7890
      - all_proxy=http://172.17.0.1:7890
    volumes:
      - .:/app
      - ./site-packages:/usr/local/lib/python3.12/site-packages
    working_dir: /app
    command: /app/init.sh

Содержимое init.sh следующее:

Язык кода:javascript
копировать
#!/bin/sh
pip install --no-cache-dir -r requirements.txt
pytest
python startup.py

Использование Docker Compose Преимущество проекта заключается в том, что вы можете легко Конфигурация запустить несколько связанных проектов. Сочиняй, можешь пройти YAML Файл конфигурации приложения Служить, а затем использовать Заказ, можно создать и запустить все Служить. Вот некоторые Docker Compose Часто используемые команды:

Заказ

описывать

docker-compose up

Создавайте, (пере)создавайте, запускайте и присоединяйте контейнеры к сервисам. Если служба уже запущена, вверх Заказ обновит Конфигурацию и перезапустит Служить.

docker-compose down

Остановиться и удалить docker-compose up Заказактивированизконтейнер、сеть、рулонипо умолчаниюсеть。

docker-compose start

Запустите существующий контейнер службы.

docker-compose stop

Остановить существующие контейнеры, не удаляя их. Затем вы можете запустить docker-compose start, чтобы снова запустить контейнер.

docker-compose restart

Перезапустите контейнер.

docker-compose build

Создайте или перестройте образ, определенный в службе.

docker-compose pull

Извлеките образ Docker, от которого зависит служба.

docker-compose push

Отправьте образ из службы в Docker Hub или другое хранилище образов.

docker-compose logs

Просмотрите выходные данные журнала сервисного контейнера.

docker-compose exec

существовать Служитьизконтейнервыполнено в течение Заказ。Например,docker-compose exec web bash будет назван web Запуск в сервисном контейнере bash сессия.

docker-compose run

существоватьвременный Служитьконтейнерсерединабегать Одноразовый Заказ。Например,docker-compose run web python manage.py migrate можно использовать для запуска Django мигрировать.

docker-compose config

Проверьте и просмотрите документ активной конфигурации конфигурации.

docker-compose ps

Перечисляет все контейнеры, определенные в файле конфигурации, и отображает их рабочий статус.

docker-compose rm

Удалить все (остановленные) сервисные контейнеры. может пройти docker-compose down добиться того же эффекта, но down Заказ Будет ещеудалитьсетьирулон。

Эти заказыдля Docker Compose Общий набор инструментов охватывает общие операции, такие как создание Зеркало, запуск и остановка контейнера, просмотр журналов прибытия и выполнение внутреннего заказа. Ознакомившись с этими Заказами, вы сможете эффективно управлять и обслуживать несколько контейнеров. Docker среда.

Выше приведены два метода, которые не создают собственное Зеркало, а используют напрямую. Docker или Docker Compose бегать Python проектный метод. Проще говоря, эти методы передаются с помощью официального Python Зеркально отразите и смонтируйте каталог проекта внутри контейнера, что позволит вам выполнять его в среде контейнера. Python сценарий. Очень удобно.

Если это было полезно, ставьте лайк, подписывайтесь, пересылайте и поддерживайте.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose