Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это пошаговое руководство поможет вам приступить к созданию и запуску контейнеров Linux на Windows с помощью wslc.exeинтерфейса командной строки контейнера, который поставляется с WSL.
wslc.exe предоставляет знакомый интерфейс командной строки для создания, доставки и запуска контейнерных приложений.
Обзор контейнеров WSL
Контейнер — это средство, используемое для создания, развертывания и запуска приложений. Контейнеры позволяют разработчикам упаковывать приложение со всеми нужными частями (библиотеки, платформы, зависимости и т. д.) и отправлять все это как один пакет. Использование контейнера гарантирует, что приложение будет работать одинаково независимо от настраиваемых параметров или ранее установленных библиотек на компьютере, на котором он работает, который может отличаться от компьютера, который использовался для записи и тестирования кода приложения. Это позволяет разработчикам сосредоточиться на написании кода, не беспокоясь о системе, в которую будет выполняться код.
Предпосылки
- WSL установлен. Запустите
wsl --update, чтобы убедиться, что у вас установлена последняя версия. - Установите Visual Studio Code(необязательно). Это обеспечит лучший интерфейс, включая возможность кода и отладки контейнерных проектов, подключенных к дистрибутиву Linux.
- Установите терминал Windows(необязательно). Это обеспечит лучший интерфейс, включая возможность настройки и открытия нескольких терминалов в одном интерфейсе (включая Ubuntu, Debian, PowerShell, Azure CLI или любой вариант использования).
Установка и проверка wslc
wslc.exe входит в состав WSL, поэтому отдельный модуль устанавливать не нужно. Чтобы убедиться, что у вас есть версия WSL, которая включает в себя:
Установите WSL , если у вас еще нет, а затем обновите до последней версии, открыв PowerShell и введя следующее:
wsl --updateУбедитесь, что
wslc.exeдоступен, и проверьте его версию, введя:wslc versionПроверьте, что всё работает правильно, запустив простой встроенный образ. Образ автоматически извлекается, если он еще не присутствует локально:
wslc run --rm hello-worldДолжно появиться сообщение "Hello", подтверждающее правильность работы установки.
Подсказка
Ниже приведены несколько полезных wslc команд, которые необходимо знать:
- Перечислить команды, доступные в CLI, введя следующее
wslc:wslc --help - Перечислите информацию для конкретной команды с помощью:
wslc <COMMAND> --help - Выведите список образов на вашем компьютере с помощью:
wslc image list - Чтобы вывести список запущенных контейнеров на вашем компьютере, используйте:
wslc container listили, чтобы вывести список всех контейнеров (включая остановленные), используйте:wslc container list --all - Отобразите статистику использования ресурсов ваших запущенных контейнеров с помощью команды:
wslc stats
Запуск первых контейнеров
С помощью wslc.exe можно загружать образы, запускать контейнеры в активном режиме или в фоновом режиме, публиковать порты и взаимодействовать с запущенными контейнерами. Попробуйте выполнить несколько следующих команд из PowerShell:
# Run a command in a throwaway container
wslc run --rm -it ubuntu:latest bash -c "echo Hello world from WSL container!"
# Run a web server in the background and publish port 8080 to the container's port 80
wslc run -d --rm -p 8080:80 --name web nginx
# Request content from the running web server
curl localhost:8080
# List the running container
wslc container list
# Run an additional command inside the running container
wslc exec web cat /etc/os-release
# Stop the container
wslc container stop web
Так как контейнер nginx был запущен с помощью --rm, он автоматически удаляется после остановки.
Создайте и запустите собственный образ контейнера
Чтобы начать разработку приложений с помощью wslc.exe, мы рекомендуем использовать VS Code вместе с расширением WSL, чтобы редактировать свой проект в файловой системе Linux и выполнять команды wslc из интегрированного терминала.
Давайте создадим образ контейнера для существующего проекта приложения.
В этом примере мы будем использовать исходный код из руководства Hello World для Django, приведённого в документации по настройке среды разработки Python. Этот шаг можно пропустить, если вы предпочитаете использовать исходный код собственного проекта. Чтобы скачать веб-приложение HelloWorld-Django из GitHub, откройте терминал WSL (например, Ubuntu) и введите следующее:
git clone https://github.com/<username>/helloworld-django.gitЗамечание
Всегда храните код в той же файловой системе, в которую вы используете средства. Это приведет к повышению производительности доступа к файлам. В этом примере мы используем дистрибутив Linux (Ubuntu) и хотим хранить файлы проекта в файловой системе
\\wsl$WSL. Хранение файлов проекта в файловой системе Windows значительно замедлит работу при использовании средств Linux в WSL для доступа к этим файлам.В терминале WSL измените каталоги на папку исходного кода для этого проекта:
cd helloworld-djangoОткройте проект в VS Code, запущенном на локальном сервере расширений WSL, введя следующее:
code .Убедитесь, что вы подключены к дистрибутиву WSL Linux, проверив зеленый удаленный индикатор в левом нижнем углу экземпляра VS Code.
Добавьте
Containerfileв корневой каталог проекта, который описывает, как собрать образ. В примере Django минимальноеContainerfileможет выглядеть следующим образом:FROM python:3 WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . EXPOSE 8000 CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]Из папки проекта (каталога, содержащего ваш
Containerfile) соберите образ с помощьюwslc build, присвоив ему имя-тег, на которое позже можно будет ссылаться:wslc build -t helloworld-django .Убедитесь, что изображение создано, просмотрев список своих изображений:
wslc image listЗапустите созданный образ как контейнер, опубликуйте порт приложения, чтобы получить доступ к нему из Windows:
wslc run -d --rm -p 8000:8000 --name django helloworld-djangoЧтобы убедиться, что контейнер запущен, просмотрите список запущенных контейнеров и проверьте журналы контейнера:
wslc container list wslc container logs djangoОткройте браузер в Windows и перейдите по адресу
http://localhost:8000/, чтобы увидеть, как ваше приложение работает в контейнере. Вы также можете убедиться, что приложение работает в Linux, выполнив команду внутри контейнера:wslc exec django unameРезультат
uname"Linux" подтверждает, что контейнер работает в ядре WSL 2 Linux.По завершении остановите контейнер:
wslc container stop django
Теперь вы успешно создали и запустили контейнер Linux в Windows с помощью wslc.exe, работающего на базе WSL 2, и теперь можете собирать, запускать, развертывать и отлаживать его в VS Code!
Устранение неполадок
Проверка контейнера или образа
Когда контейнер непредвиденно работает, inspectlogs команды предоставляют подробные сведения для диагностики проблемы:
wslc container inspect <container-id>
wslc container logs <container-id>
wslc image inspect <image>
Восстановление места на диске
Образы и остановленные контейнеры занимают место на диске. Чтобы очистить ресурсы, которые вы больше не используете:
# Remove all stopped containers
wslc container prune
# Remove unused images
wslc image prune
Дополнительные сведения об устранении неполадок в WSL см. в документации по устранению неполадок .
Дополнительные ресурсы
Windows Subsystem for Linux