Поделиться через


Руководство по созданию приложения-контейнера с помощью Visual Studio Code

Это руководство является началом серии из четырех частей, представляющих Docker для работы с Visual Studio Code (VS Code). Вы узнаете, как создавать и запускать контейнеры Docker, сохранять данныеи управлять несколькими контейнерами с помощью Docker Compose.

VS Code предлагает расширение "Средства контейнеров", которое позволяет работать с локальной службой Docker Desktop. Docker Desktop работает на компьютере и управляет локальными контейнерами, которые являются компактными виртуализированными средами, предоставляющими платформу для создания и запуска приложений. Контейнеры не требуют ресурсов и накладных затрат, характерных для полной операционной системы.

В этом первом руководстве описано, как:

  • Создайте контейнер Docker.
  • Создание образа контейнера.
  • Запустите контейнер приложения.

Необходимые условия

Руководство работает с Windows 10 или более поздней и Docker Desktop, в котором настроено использование контейнеров Linux.

Создание контейнера

Контейнер — это процесс на компьютере. Он изолирован от всех остальных процессов на хост-компьютере. Эта изоляция использует пространства имен ядра и группы элементов управления.

Контейнер использует изолированную файловую систему. Эта нестандартная файловая система предоставляется образом контейнера . Образ содержит все необходимое для запуска приложения, например все зависимости, конфигурацию, скрипты и двоичные файлы. Образ также содержит другую конфигурацию контейнера, например переменные среды, команду по умолчанию для выполнения и другие метаданные.

После установки расширения "Средства контейнеров" для VS Code можно работать с контейнерами в VS Code. Помимо контекстных меню в обозревателе контейнеров, можно выбрать терминал>"Новый терминал ", чтобы открыть окно командной строки. Вы также можете выполнять команды в окне Bash. Если не указано, любая команда, помеченная как Bash, может выполняться в окне Bash или терминале VS Code.

  1. Установите для Docker режим контейнера Linux. Чтобы переключиться на контейнеры Linux, если в настоящее время заданы контейнеры Windows, щелкните правой кнопкой мыши значок Docker в области уведомлений во время работы Docker Desktop и выберите Переключиться на контейнеры Linux.

  2. В VS Code выберите терминал >новый терминал.

  3. В окне терминала или окне 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
    
  4. В VS Code щелкните значок "Контейнеры" слева, чтобы просмотреть обозреватель контейнеров.

    Снимок экрана показывает расширение

    Расширение VS Code инструментов контейнеров показывает контейнеры, работающие на вашем компьютере. Вы можете получить доступ к журналам контейнеров и управлять жизненным циклом контейнера, например остановкой и удалением.

    Имя контейнера, modest_shockley в этом примере, создается случайным образом. У вас будет другое имя.

  5. Щелкните правой кнопкой мыши на docker/getting-started, чтобы открыть контекстное меню. Выберите Открыть в браузере.

    Вместо этого откройте браузер и введите http://localhost/tutorial/.

    Вы увидите страницу, размещенную локально, о DockerLabs.

  6. Щелкните правой кнопкой мыши на docker/getting-started, чтобы открыть контекстное меню. Выберите Удалить, чтобы удалить этот контейнер.

    Чтобы удалить контейнер с помощью командной строки, выполните следующую команду, чтобы получить его идентификатор контейнера:

    docker ps
    

    Затем остановите и удалите контейнер:

    docker stop <container-id>
    docker rm <container-id>
    
  7. Обновите браузер. Страница "Начало работы", которую вы видели минуту назад, исчезла.

Создание образа контейнера для приложения

В этом руководстве используется простое приложение Todo.

снимок экрана: пример приложения с несколькими элементами, добавленными и текстовым полем и кнопкой для добавления новых элементов.

Приложение позволяет создавать рабочие элементы и пометить их как завершенные или удалить.

Чтобы создать приложение, создайте Dockerfile. Dockerfile — это текстовый скрипт инструкций, используемых для создания образа контейнера.

  1. Перейдите в репозиторий руководства по Docker Get Started, а затем выберите Код>Скачать ZIP. Извлеките содержимое в локальную папку.

    снимок экрана: часть сайта GitHub с выделенной кнопкой

  2. В VS Code выберите Файл>Открыть Папку. Перейдите к папке приложения в извлеченном проекте и откройте ее. Вы должны увидеть файл с именем package.json и две папки с именами src и spec.

    снимок экрана Visual Studio Code с открытым файлом package.json с загруженным в нём приложением.

  3. Создайте файл с именем Dockerfile в той же папке, что и файл package.json со следующим содержимым.

    FROM node:lts-alpine
    RUN apk add --no-cache python3 g++ make
    WORKDIR /app
    COPY . .
    RUN yarn install --production
    CMD ["node", "/app/src/index.js"]
    

    Заметка

    Убедитесь, что файл не имеет расширения, например .txt.

  4. В проводнике слева в VS Code щелкните правой кнопкой мыши Dockerfile, а затем выберите создать образ. Введите getting-started, в качестве тега для изображения в текстовом поле.

    Тег — это удобное имя для изображения.

    Чтобы создать образ контейнера через командную строку, используйте следующую команду из папки app, которая содержит Dockerfile.

    docker build -t getting-started .
    

Вы использовали Dockerfile для создания нового образа контейнера. Возможно, вы заметили, что было загружено много "слоев". Dockerfile начинается с образа node:lts-alpine. Если этот образ еще не был на компьютере, этот образ должен быть скачан.

После скачивания образа Dockerfile копирует приложение и использует yarn для установки зависимостей приложения. Значение CMD в Dockerfile указывает команду по умолчанию, выполняемую при запуске контейнера из этого образа.

. в конце команды docker build сообщает, что Docker должен искать Dockerfile в текущем каталоге.

Запуск контейнера приложения

Теперь, когда у вас есть образ, можно запустить приложение.

  1. Чтобы запустить контейнер, используйте следующую команду.

    docker run -dp 3000:3000 getting-started
    

    Параметр -d указывает, что контейнер выполняется в отсоединяемом режиме в фоновом режиме. Значение -p создает сопоставление между портом узла 3000 и портом контейнера 3000. Без сопоставления портов вы не сможете получить доступ к приложению.

  2. Через несколько секунд в VS Code, в обозревателе контейнеров, в разделе CONTAINERS, нажмите правой кнопкой мыши getting-started и выберите Open in Browser. Вместо этого можно открыть веб-браузер здесь: http://localhost:3000.

    Вы должны видеть, как работает приложение.

    Снимок экрана показывает, что в примере приложения нет элементов, и текст

  3. Добавьте элемент или два, чтобы проверить, работает ли оно должным образом. Элементы можно пометить как завершенные и удалить. Ваш фронтенд успешно сохраняет элементы в бэкенде.

Дальнейшие действия

Вы выполнили это руководство, и у вас есть запущенный диспетчер списков дел с несколькими элементами. Вы узнали, как создать образы контейнеров и запустить контейнерное приложение.

Сохраните все, что вы сделали до сих пор, чтобы продолжить эту серию учебников. Затем попробуйте часть II этой серии:

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