Представьте себе сценарий, в котором вы написали код и готовы развернуть его на новом сервере. На этом сервере есть только Python2 и Python3.6, но нет Python3.12, под который адаптирован ваш код. Что вам делать?
1. Скомпилируйте и установите Python,Я не рекомендую этот метод,Во время установки,Отсутствие зависимостей сведет вас с ума,Если вы хотите использовать этот метод,Вы можете обратиться к этой статьеИзбегайте подводных камней — скомпилируйте и установите Python Невозможно построить при встрече SSL。
2. Docker или docker Compose. Я настоятельно рекомендую этот метод, и его можно запустить без создания собственного образа, что эквивалентно наличию среды Python, которую вы можете использовать в любое время.
Далее давайте поделимся методом 2. Вы можете либо напрямую Использование команд Docker,ХОРОШОиспользовать Docker Compse。
1. Откройте терминал или интерфейс командной строки.
2. перейдите в каталог проекта Python.
3. Выполните следующую команду, чтобы смонтировать каталог проекта в контейнер и использовать Docker для запуска приложения Python:
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 Навыки памяти для сопоставления отношений между хостом и контейнером
1. В вашем Python Создайте docker-compose.yml
документ.
2. Добавьте следующий контент в docker-compose.yml
файл, настройте его под свои нужды:
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. Выполните следующую команду, чтобы запустить службу:
docker-compose up -d
Это будет основано на docker-compose.yml
Конфигурация в файле запускает контейнер и запускает указанный Python Скрипт.-d
Указывает на работу в фоновом режиме.
Вы можете использовать агент хоста, чтобы указать часовой пояс контейнера, внешние порты и т. д. Если вы не хотите каждый раз выполнять установку по протоколу, вы можете написать docker-compose.yml следующим образом:
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 следующее:
#!/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 сценарий. Очень удобно.
Если это было полезно, ставьте лайк, подписывайтесь, пересылайте и поддерживайте.