Из публичного аккаунта: AirPython

Есть некоторые болевые точки при развертывании проектов на традиционных физических машинах или облачных серверах.

Например: медленное развертывание проекта, пустая трата ресурсов, сложная миграция и низкое расширение.

К преимуществам использования Docker для развертывания проектов относятся:

  • Эффективное использование системных ресурсов

  • Услуги запускаются быстрее

  • Согласованная среда, упрощенная миграция

В этой статье будет представлен общий процесс развертывания Docker проекта Python.

1. Файл описания Dockerfile

Dockerfile — это файл описания, размещенный в корневом каталоге проекта, вы можете использовать команды Docker для сборки образа на основе этого файла.

Общие команды включают в себя:

  • ИЗ

    Используется для определения базового изображения

  • ОБСЛУЖИВАТЕЛЬ

    Укажите информацию о сопровождающем, вы можете ее опустить

  • БЕЖАТЬ

    Связанная с «  командой установки  » , ее можно использовать для установки зависимостей инструментов.

  • ДОБАВЛЯТЬ

    Разархивируйте файлы хоста

  • КОПИРОВАТЬ

    То же, что и команда ADD, но без декомпрессии

  • РАБОЧИЙКАТАЛОГ

    Используется для переключения рабочего каталога

  • ОБЪЕМ

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

  • РАЗОБЛАЧАТЬ

    Настройте номер порта, предоставляемый проектом в контейнере.

  • CMD

    Указывает команду для запуска после запуска контейнера

    Например, вы можете запустить команду для запуска проекта

2. Давай драться

Общий процесс развертывания приложения с помощью Docker:

  • Разработать проект и протестировать его локально

  • Напишите Dockerfile и поместите его в корневой каталог проекта.

  • файл образа пакета

  • Запустите контейнер изображения

  • тест

Для удобства демонстрации вот простой проект Flask в качестве примера для объяснения

2-1 Разработка проекта

from flask import Flask

# 安装依赖
# pip3 install -U flask

app = Flask(__name__)


@app.route('/')
def index():
    return "测试容器部署!"


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8888)

# 浏览器访问测试
# http://127.0.0.1:8888/

Разработка проекта завершена, и файл Dockerfile можно писать после прохождения локального теста

2-2 Запись Dockerfile

В корневом каталоге проекта создайте файл Dockerfile и напишите сценарий описания, используя приведенные выше инструкции.

Следует отметить, что номер порта, отображаемый здесь командой «EXPOSE», согласуется с номером порта, определенным в файле ввода.

# Dockerfile

FROM centos:7.9.2009
RUN yum makecache fast;
RUN yum install python3-devel python3-pip -y
RUN pip3 install -i https://pypi.douban.com/simple flask
COPY main.py /opt
WORKDIR /opt
EXPOSE 8888
CMD ["python3","main.py"]

2-3 Создайте образ

# 在当前文件夹下,根据Dockerfile文件构建一个镜像
# 镜像名称:xag/my_flask_web
# --no-cache:不使用旧的缓存进行镜像构建
docker build --no-cache -t "xag/my_flask_web" .

2-4 Запустите контейнер образа

Используйте команду docker run для запуска контейнера на основе образа

в

  • -d: представляет контейнер для работы в фоновом режиме, а не на переднем плане.

  • --name: псевдоним, используемый для выполнения контейнера

  • -p: используется для настройки сопоставления портов между хостом и контейнером.

# -d:后台运行
# 宿主机(9999)映射容器内的8888(上面Dockerfile已经暴露了8888端口)
docker run -d --name flask_web -p 9999:8888 xag/my_flask_web  

2-5 Проверьте это

Наконец, в браузере получите доступ к проекту через номер порта 9999, указанный хостом.

Адрес доступа: http://127.0.0.1:9999/

3. Резюме

В статье описан общий процесс развертывания проекта с помощью Docker с помощью простого веб-проекта.

На самом деле Dockerfile очень гибкий, он также поддерживает ARG/ENV для установки переменных окружения, команду VOLUME для монтирования каталогов, ENTRYPOINT для настройки запускаемых программ и параметров и т. д. Вы можете расширить эту часть согласно введению на официальном сайте.

https://docs.docker.com/engine/reference/builder/

--- ЭОФ ---


Рекомендуем↓↓↓