Из публичного аккаунта: 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/