Руководство. Создание приложения Docker с помощью Visual Studio Code
Это руководство является началом четырех частей серии, введя Docker для использования с Visual Studio Code (VS Code). Вы узнаете, как создавать и запускать контейнеры Docker, сохранять данные и управлять несколькими контейнерами с помощью Docker Compose.
VS Code предлагает расширение Docker, которое позволяет работать с локальной службой Docker Desktop. Docker Desktop работает на компьютере и управляет локальными контейнерами, которые являются компактными виртуализированными средами, предоставляющими платформу для создания и запуска приложений. Контейнерам не требуется объем и издержки полной операционной системы.
В первом учебнике вы узнаете, как:
- Создайте контейнер Docker.
- Сборка образа контейнера.
- Запуск контейнера приложения.
Необходимые компоненты
- Установленный экземпляр Visual Studio Code.
- Установленное расширение Docker VS Code.
- Docker Desktop настроен для использования контейнеров Linux.
- Учетная запись Docker Hub. Вы можете создать учетную запись бесплатно.
В этом руководстве работает с Windows 10 или более поздней версии и Docker Desktop, настроенными для использования контейнеров Linux.
Создание контейнера
Контейнер — это процесс на компьютере. Он изолирован от всех других процессов на главном компьютере. Для такой изоляции используются пространства имен ядра и группы управления.
Контейнер использует изолированную файловую систему. Эта пользовательская файловая система предоставляется образом контейнера. Образ содержит все необходимое для запуска приложения, например все зависимости, конфигурацию, скрипты и двоичные файлы. Образ также содержит другую конфигурацию для контейнера, например переменные среды, команду, выполняемую по умолчанию, и другие метаданные.
Установив расширение Docker для VS Code, можно приступить к работе с контейнерами в VS Code. Помимо использования контекстных меню в области Docker, можно выбрать Терминал>Новый терминал, чтобы открыть окно командной строки. Кроме того, команды можно выполнять в окне Bash. Если не указано иное, в окне Bash или в терминале VS Code можно выполнять любую команду, помеченную как Bash.
Установите для Docker режим контейнера Linux. Чтобы переключиться на контейнеры Linux, если вы в настоящее время настроены на контейнеры Windows, щелкните правой кнопкой мыши значок Docker в области системы во время работы Docker Desktop и выберите "Переключиться на контейнеры Linux".
В VS Code выберите Терминал>Новый терминал.
Выполните эту команду в окне терминала или в окне Bash.
docker run -d -p 80:80 docker/getting-started
Эта команда содержит следующие параметры:
-d
— запуск контейнера в отключенном режиме (в фоновом окне).-p 80:80
— сопоставление порта 80 узла с портом 80 в контейнере.docker/getting-started
— указывает образ, который будет использоваться.
Совет
Для сокращения полной команды можно использовать однозначные флаги. Например, приведенная выше команда может быть написана следующим образом:
docker run -dp 80:80 docker/getting-started
В VS Code щелкните значок Docker слева, чтобы просмотреть расширение Docker.
Расширение Docker для VS Code отображает контейнеры, запущенные на компьютере. Вы можете получить доступ к журналам контейнеров и управлять жизненным циклом контейнеров, например останавливать или удалять их.
Имя контейнера, modest_shockley в этом примере, создается случайным образом. У вашего контейнера будет другое имя.
Щелкните правой кнопкой мыши docker/getting-started, чтобы открыть контекстное меню. Выберите Открыть в браузере.
Или откройте браузер и введите
http://localhost/tutorial/
.Вы увидите размещенную локально страницу о DockerLabs.
Щелкните правой кнопкой мыши docker/getting-started, чтобы открыть контекстное меню. Выберите Удалить, чтобы удалить этот контейнер.
Чтобы удалить контейнер с помощью командной строки, выполните следующую команду для получения идентификатора контейнера:
docker ps
Затем остановите и удалите контейнер:
docker stop <container-id> docker rm <container-id>
Обновите свой браузер. Страница "Начало работы", которую вы видели недавно, больше не отображается.
Создание образа контейнера для приложения
В этом учебнике используется простое приложение Todo.
Приложение позволяет создавать рабочие элементы и помечать их как завершенные или удалять их.
Чтобы создать приложение, создайте Dockerfile. Dockerfile — это текстовый сценарий инструкций, который используется для создания образа контейнера.
Перейдите в репозиторий Учебник по началу работы с Docker, а затем выберите Код>Скачать ZIP-файл. Извлеките содержимое в локальную папку.
В VS Code выберите Файл>Открыть папку. Перейдите в папку app в извлеченном проекте и откройте ее. Вы увидите файл с именем package.json и две папки с именами src и spec.
Создайте файл с именем Dockerfile в той же папке, где находится файл package.json со следующим содержимым.
FROM node:20-alpine RUN apk add --no-cache python3 g++ make WORKDIR /app COPY . . RUN yarn install --production CMD ["node", "/app/src/index.js"]
Примечание.
Убедитесь, что файл не имеет расширения файла, например
.txt
.В проводнике в левой части в VS Code щелкните правой кнопкой мыши Dockerfile и выберите пункт Собрать образ. В поле ввода текста введите getting-started в качестве тега для образа.
Тег — это понятное имя для образа.
Чтобы создать образ контейнера из командной строки, используйте следующую команду.
docker build -t getting-started .
Примечание.
Чтобы выполнить эту команду, во внешнем окне Bash перейдите в папку
app
с параметром Dockerfile.
Вы создали образ контейнера с помощью Dockerfile.
Возможно, вы заметили, что было скачано много слоев.
Dockerfile начинается с образа node:20-alpine
.
Если этот образ еще не был на компьютере, этот образ должен быть скачан.
После скачивания образа Dockerfile копирует ваше приложение и использует yarn
для установки зависимостей приложения.
Значение CMD
в Dockerfile указывает команду по умолчанию, которую необходимо выполнить при запуске контейнера из этого образа.
.
в конце команды docker build
указывает, что Docker должен искать Dockerfile в текущем каталоге.
Запуск контейнера приложения
Теперь, когда у вас есть образ, можно запустить приложение.
Чтобы запустить контейнер, используйте следующую команду.
docker run -dp 3000:3000 getting-started
Параметр
-d
указывает, что вы запускаете контейнер в отключенном режиме в фоне. Значение-p
создает сопоставление между портом узла 3000 и портом контейнера 3000. Без сопоставления портов вы не сможете получить доступ к приложению.Через несколько секунд в VS Code в области Docker в разделе КОНТЕЙНЕРЫ щелкните правой кнопкой мыши getting-started и выберите команду Открыть в браузере. Или перейдите в веб-браузере по адресу
http://localhost:3000
.Вы должны увидеть выполняющееся приложение.
Добавьте элемент или два, чтобы проверить, работает ли оно должным образом. Элементы можно пометить как завершенные и удалить элементы. Внешний интерфейс успешно сохраняет элементы в серверной части.
Следующие шаги
Вы выполнили это руководство, и у вас есть запущенный диспетчер списков дел с несколькими элементами. Вы узнали, как создать образы контейнеров и запустить контейнерное приложение.
Чтобы продолжить работу с этой серией учебников, оставьте все настройки, сделанные на данный момент. Затем попробуйте часть II этой серии:
Ниже приведены некоторые ресурсы, которые могут быть полезны: