Станьте опытным пользователем Docker с VS Code и расширением Docker.
Ваша услуга реализована на выбранном вами языке. Теперь вы хотите поместить его в контейнер и протестировать локально перед развертыванием в производственной среде. Первым шагом будет написание файла Docker, создание образа, запуск контейнера и проверка журналов. Верно?
Не совсем так. Хотя этот процесс вполне приемлем, есть способ лучше: инструмент, который может написать файл Docker за вас, поможет вам с автозаполнением, если вы хотите его отредактировать, и предоставит графический пользовательский интерфейс для взаимодействия с движком Docker. .
Что, если есть инструмент, который может написать для вас Dockerfile, помочь вам с автозаполнением и предоставить графический пользовательский интерфейс для взаимодействия с движком Docker?
Расширение Docker для Visual Studio Code - это больше, чем просто еще одно расширение IDE. Он может улучшить вашу работу с Docker. В этой истории мы подробно рассмотрим, что может сделать расширение Docker для Visual Studio Code и как его использовать, чтобы стать опытным пользователем Docker.
Learning Rate - это мой еженедельный информационный бюллетень для тех, кто интересуется миром AI и MLOps. Каждую пятницу вы будете получать от меня обновления и мысли о последних новостях, исследованиях, репозиториях и книгах в области искусственного интеллекта. Подпишитесь здесь!
Докер + VS
Расширение Docker для VS Code упрощает создание, запуск, управление и развертывание контейнерных приложений из Visual Studio Code. Чтобы начать его использовать, обязательно скачайте расширение для торговой площадки Visual Studio Code. Более того, это проект с открытым исходным кодом, поэтому вы можете проверить его код, а процедура установки довольно проста, поэтому нет необходимости описывать ее здесь в другом разделе.
Основные особенности
В этом разделе мы рассмотрим основные функции расширения Docker. Позже мы используем многие из них на простом примере.
- Редактируйте файлы Docker. Вы можете использовать функцию автозаполнения IntelliSense при редактировании файлов
Dockerfile
иdocker-compose.yml
. Кроме того, вы получите справку по синтаксису для общих команд.
- Создание файлов Docker: вы можете сгенерировать и добавить файл Docker в свою рабочую область с помощью команды
Docker: Add Docker Files to Workspace
из палитры команд. Команда сгенерирует обаDockerfile
и.dockerignore
файла и добавит их в вашу рабочую область. Вы также можете использовать эту команду для создания добавленных файлов Docker Compose. Это пригодится при отладке.
- Изучение: расширение Docker предоставляет представление Docker в VS Code. Представление Docker позволяет вам исследовать ресурсы Docker и управлять ими: контейнерами, образами, томами, сетями и реестрами контейнеров. Все на расстоянии одного щелчка правой кнопкой мыши.
- Выполнение команд Docker. Многие из наиболее распространенных команд Docker встроены прямо в палитру команд. Вы можете запускать команды Docker для управления образами, сетями, томами, реестрами образов и Docker Compose. Кроме того, команда
Docker: Prune System
удалит остановленные контейнеры, оборванные образы, а также неиспользуемые сети и тома.
- Отладка контейнеров. Используя расширение Docker, мы можем отлаживать службы, созданные с использованием Node.js, Python или .NET (C #), которые выполняются внутри контейнера.
Есть много других функций, таких как подключения к реестру и управление контекстом, но вы можете пройти долгий путь, просто используя эти ключевые предложения. Затем мы реализуем простое приложение Python Flask, подключаем его и развертываем без необходимости возиться с Docker CLI.
Простой пример
В этом разделе мы создадим простое приложение Flask «Hello World» и развернем его с помощью расширения Docker. Во-первых, код:
Если вы знакомы с Flask, то увидите, что это самое простое приложение, которое вы можете реализовать. Он просто возвращает «Hello World» всякий раз, когда вы попадаете в корневую конечную точку. Затем нам нужен requirements.txt
файл для хранения зависимостей, и мы готовы к работе:
Flask==1.1.2 gunicorn
Чтобы создать Dockerfile и все остальное, вам нужно просто запустить Docker: Add Docker Files to Workspace
в палитре команд (ctlr+shift+p
в Windows).
Выберите вариант Python: Flask
для первого вопроса, а затем расширение спросит вас, хотите ли вы включить дополнительные файлы компоновки Docker. Выберите да; таким образом вы сможете позже отладить приложение, работающее внутри контейнера. Наконец, выберите файл python, содержащий приложение Flask (код, указанный выше), и порт, который вы хотите открыть (по умолчанию 5000
). Ты готов!
Теперь, чтобы создать образ, щелкните правой кнопкой мыши созданный файл Docker и выберите Build Image...
. Откроется терминал, и ваше изображение будет готово в считанные секунды.
Чтобы запустить приложение, выберите значок Docker на левой панели, найдите свой образ в разделе Images
, щелкните его правой кнопкой мыши и выберите «Выполнить». Так просто.
В разделе Containers
найдите работающий контейнер, щелкните его правой кнопкой мыши и выберите View Logs
. Эта команда отобразит журналы вашего контейнера в терминале. Получите конечную точку, которую он слушает (должно быть http://0.0.0.0:5000
). Чтобы получить результаты работы службы Python, запустите curl http://0.0.0.0:5000
.
Вот и все! Расширение Docker для VS Code упрощает процесс, и вы получаете время, чтобы сосредоточиться на своем коде.
Отладка
Чтобы настроить отладку с помощью Gunicorn, нам нужно кое-что еще. The Docker: Python-Flask
конфигурация запуска, которая была создана автоматически, переопределяет точку входа Gunicorn контейнера с отладчиком Python. Чтобы отладить наше приложение, работающее с Gunicorn, мы должны выполнить следующие шаги:
- Добавьте
debugpy
в свойrequirements.txt
файл. - Добавьте следующий фрагмент кода в файл, который вы хотите отлаживать:
import debugpy debugpy.listen(("0.0.0.0", 5678)) debugpy.wait_for_client()
3. Добавьте конфигурацию Python: Remote Attach
в launch.json
в папке .vscode
. Теперь файл JSON должен выглядеть так, как показано ниже:
4. Измените файл docker-compose.yml
, чтобы открыть порт отладчика, добавив 5678:5678
в раздел портов. Теперь файл должен выглядеть так, как показано ниже:
5. Запустите контейнер, щелкнув файл docker-compose.yml
правой кнопкой мыши и выбрав «Создать».
6. Установите точку останова в выбранном файле, перейдите к Run and Debug
и выберите Python: Remote Attach
конфигурацию запуска.
7. Нажмите F5 или нажмите кнопку воспроизведения, чтобы подключить отладчик.
Удачной отладки!
Заключение
В этой истории мы изучили расширение Docker для VS Code и то, как оно может помочь нам составить Dockerfile, создать образ и развернуть его. Чтобы погрузиться глубже, ознакомьтесь с темой Работа с контейнерами на сайте документации Visual Studio Code, чтобы начать работу.
Learning Rate - это мой еженедельный информационный бюллетень для тех, кто интересуется миром AI и MLOps. Каждую пятницу вы будете получать от меня обновления и мысли о последних новостях, исследованиях, репозиториях и книгах в области искусственного интеллекта. Подпишитесь здесь!
об авторе
Меня зовут Димитрис Поулопулос, я инженер по машинному обучению, работающий в Arrikto. Я разработал и внедрил ИИ и программные решения для крупных клиентов, таких как Европейская комиссия, Евростат, МВФ, Европейский центральный банк, ОЭСР и IKEA.
Если вы хотите прочитать больше сообщений о машинном обучении, глубоком обучении, науке о данных и DataOps, подпишитесь на меня в Medium, LinkedIn или @ james2pl в Twitter. Кроме того, посетите страницу Ресурсы на моем веб-сайте, где можно найти отличные книги и курсы с самым высоким рейтингом, чтобы начать создавать свою собственную учебную программу по науке о данных!