Docker for visual studio code что это
Этот учебник является первым в серии из трех частей, посвященной использованию Docker с помощью Visual Studio Code (VS Code). Вы узнаете, как создавать и запускать контейнеры, сохранять данные и развертывать контейнерные приложения в Azure.
Из этого первого учебника вы узнаете, как создавать и развертывать приложения Docker. Затем вы можете обновить контейнерное приложение и предоставить к нему общий доступ.
Контейнеры — это компактные виртуализованные окружения, такие как виртуальные машины, которые предоставляют платформу для создания и запуска приложений. Контейнерам не требуется объем и издержки полной операционной системы. Docker — это сторонний поставщик стандартных контейнеров и система управления контейнерами.
Служба Docker Desktop запускается на компьютере и используется для управления локальными контейнерами. Средства разработки, такие как Visual Studio и VS Code, предлагают расширения, позволяющие работать с локальной службой Docker Desktop. Вы можете создавать контейнерные приложения, развертывать приложения в контейнеры и отлаживать приложения, выполняющиеся в контейнерах.
В этом руководстве описано следующее:
- Создайте контейнер.
- Сборка образа контейнера.
- Запуск контейнера приложения.
- Обновление кода и замена контейнера.
- Предоставление общего доступа к образу.
- Запуск образа в новом экземпляре.
Предварительные требования
-
. . .
- Учетная запись Docker Hub. Учетную запись можно создать бесплатно.
Создание контейнера
Контейнер — это процесс на компьютере. Он изолирован от всех других процессов на главном компьютере. Для такой изоляции используются пространства имен ядра и группы управления.
Контейнер использует изолированную файловую систему. Эта пользовательская файловая система предоставляется образом контейнера. Образ содержит все необходимое для запуска приложения, например все зависимости, конфигурацию, скрипты и двоичные файлы. Образ также содержит другую конфигурацию для контейнера, например переменные среды, команду, выполняемую по умолчанию, и другие метаданные.
Установив расширение Docker для VS Code, можно приступить к работе с контейнерами в VS Code. Помимо использования контекстных меню в области Docker, можно выбрать Терминал > Новый терминал, чтобы открыть окно командной строки. Кроме того, команды можно выполнять в окне Bash. Если не указано иное, в окне Bash или в терминале VS Code можно выполнять любую команду, помеченную как Bash.
В VS Code выберите Терминал > Новый терминал.
Выполните эту команду в окне терминала или в окне Bash.
Эта команда содержит следующие параметры:
- -d — запуск контейнера в отключенном режиме (в фоновом окне).
- -p 80:80 — сопоставление порта 80 узла с портом 80 в контейнере.
- docker/getting-started — указывает образ, который будет использоваться.
Для сокращения полной команды можно использовать однозначные флаги. Например, приведенная выше команда может быть написана следующим образом:
В VS Code щелкните значок Docker слева, чтобы просмотреть расширение Docker.
Расширение Docker для VS Code отображает контейнеры, запущенные на компьютере. Вы можете получить доступ к журналам контейнеров и управлять жизненным циклом контейнеров, например останавливать или удалять их.
Имя контейнера (в этом примере modest_schockly) создано случайным образом. У вашего контейнера будет другое имя.
Щелкните правой кнопкой мыши docker/getting-started, чтобы открыть контекстное меню. Выберите Открыть в браузере.
Вы увидите размещенную локально страницу о DockerLabs.
Щелкните правой кнопкой мыши docker/getting-started, чтобы открыть контекстное меню. Выберите Удалить, чтобы удалить этот контейнер.
Чтобы удалить контейнер с помощью командной строки, выполните следующую команду для получения идентификатора контейнера:
Затем остановите и удалите контейнер:
Создание образа контейнера для приложения
В этом учебнике используется простое приложение Todo.
Приложение позволяет создавать рабочие элементы и помечать их как завершенные или удалять их.
Чтобы создать приложение, создайте Dockerfile. Dockerfile — это текстовый сценарий инструкций, который используется для создания образа контейнера.
В VS Code выберите Файл > Открыть папку. Перейдите в папку app в извлеченном проекте и откройте ее. Вы увидите файл с именем package.json и две папки с именами src и spec.
Создайте файл с именем Dockerfile в той же папке, где находится файл package.json со следующим содержимым.
Убедитесь, что файл не имеет расширения файла, например .txt .
В проводнике в левой части в VS Code щелкните правой кнопкой мыши Dockerfile и выберите пункт Собрать образ. В поле ввода текста введите getting-started в качестве тега для образа.
Тег — это понятное имя для образа.
Чтобы создать образ контейнера из командной строки, используйте следующую команду.
Чтобы выполнить эту команду, во внешнем окне Bash перейдите в папку app с параметром Dockerfile.
Вы создали образ контейнера с помощью Dockerfile. Возможно, вы заметили, что было скачано много слоев. Dockerfile начинается с образа node:12-alpine . Если его еще нет на компьютере, скачайте его.
После скачивания образа Dockerfile копирует ваше приложение и использует yarn для установки зависимостей приложения. Значение CMD в Dockerfile указывает команду по умолчанию, которую необходимо выполнить при запуске контейнера из этого образа.
. в конце команды docker build указывает, что Docker должен искать Dockerfile в текущем каталоге.
Запуск контейнера приложения
Теперь, когда у вас есть образ, можно запустить приложение.
Чтобы запустить контейнер, используйте следующую команду.
Параметр -d указывает, что вы запускаете контейнер в отключенном режиме в фоне. Значение -p создает сопоставление между портом узла 3000 и портом контейнера 3000. Без сопоставления портов вы не сможете получить доступ к приложению.
Вы должны увидеть выполняющееся приложение.
Добавьте элемент или два, чтобы увидеть, что приложение работает, как ожидалось. Элементы можно пометить как завершенные и удалить элементы. Внешний интерфейс успешно сохраняет элементы в серверной части.
Обновление кода и замена контейнера
На этом этапе у вас есть работающий диспетчер списка задач с несколькими элементами. Теперь сделаем несколько изменений и изучим управление контейнерами.
В файле src/static/js/app.js обновите строку 56 для использования новой текстовой метки:
Остановите и удалите текущую версию контейнера. Несколько контейнеров не могут использовать один и тот же порт.
Щелкните правой кнопкой мыши контейнер getting-started и выберите команду Удалить.
Или в командной строке выполните следующую команду, чтобы получить идентификатор контейнера.
Затем остановите и удалите контейнер:
Создайте обновленную версию образа. В проводнике щелкните правой кнопкой мыши Dockerfile и выберите команду Собрать образ.
Или, чтобы выполнить сборку с помощью командной строки, выполните ту же команду, которая использовалась ранее.
Запустите новый контейнер с обновленным кодом.
Предоставление общего доступа к образу
Теперь, когда вы создали образ, к нему можно предоставить общий доступ. Для предоставления общего доступа к образам Docker используется реестр Docker. Реестр по умолчанию — это Docker Hub, откуда берутся все используемые нами образы.
Перейдите в Docker Hub и войдите в свою учетную запись.
Щелкните Создать репозиторий.
В качестве имени репозитория введите getting-started . Убедитесь, что параметру Видимость задано значение Общедоступная.
С правой стороны страницы вы увидите раздел с названием Команды Docker. В нем приводится пример команды для отправки в репозиторий.
Вам потребуется ввести учетную запись Docker Hub, пароль и пространство имен.
Чтобы выполнить отправку в Docker Hub с помощью командной строки, выполните следующую процедуру.
Войдите в Docker Hub:
Используйте следующую команду, чтобы присвоить образу getting-started новое имя.
Запуск образа в новом экземпляре
Теперь, когда образ создан и отправлен в реестр, попробуйте запустить приложение в совершенно новом экземпляре, которому незнаком этот образ контейнера. Чтобы запустить приложение, используйте сайт Play with Docker.
Откройте Play with Docker в браузере.
Войдите со своей учетной записью Docker Hub.
Запустите приложение в окне терминала.
Play with Docker извлекает образ и запускает его.
Щелкните значок 3000 рядом с пунктом ОТКРЫТЬ ПОРТ. Вы должны увидеть приложение с внесенными изменениями.
Если значок 3000 не отображается, выберите ОТКРЫТЬ ПОРТ и введите "3000".
Очистка ресурсов
Чтобы продолжить работу с этой серией учебников, оставьте все настройки, сделанные на данный момент.
Дальнейшие действия
Вы завершили работу с этим учебником. Вы узнали, как создавать образы контейнеров, запускать контейнерные приложения, обновлять код и запускать образ в новом экземпляре.
Доступные в Visual Studio инструменты для разработки с помощью контейнеров Docker просты в использовании и значительно упрощают сборку, отладку и развертывание контейнерных приложений. Можно работать над одним проектом с использованием контейнера или применять оркестрацию контейнеров с Service Fabric или Docker Compose для работы с несколькими службами в контейнерах.
Предварительные требования
Поддержка Docker в Visual Studio оптимизировалась с каждым выпуском программы с учетом пожеланий пользователей. Есть два уровня поддержки Docker, которые можно добавить в проект. Набор поддерживаемых возможностей зависит от типа проекта и версии Visual Studio. Если вам необходим контейнер для работы над отдельным проектом, а не оркестрация, для некоторых типов проектов можно просто добавить поддержку Docker. Следующий уровень — это поддержка оркестрации контейнеров, в рамках которой добавляются соответствующие файлы поддержки для определенного оркестратора по выбору.
В Visual Studio 2017 в качестве служб оркестрации контейнеров можно использовать Docker Compose и Service Fabric.
Предварительные требования
Поддержка Docker в Visual Studio
Поддержка Docker в Visual Studio оптимизировалась с каждым выпуском программы с учетом пожеланий пользователей. Есть два уровня поддержки Docker, которые можно добавить в проект. Набор поддерживаемых возможностей зависит от типа проекта и версии Visual Studio. Если вам необходим контейнер для работы над отдельным проектом, а не оркестрация, для некоторых типов проектов можно просто добавить поддержку Docker. Следующий уровень — это поддержка оркестрации контейнеров, в рамках которой добавляются соответствующие файлы поддержки для определенного оркестратора по выбору.
В Visual Studio 2019 в качестве служб оркестрации контейнеров можно использовать Docker Compose, Kubernetes и Service Fabric.
В Visual Studio 2019 версии 16.4 и более поздних версиях доступно окно Контейнеры, которое позволяет просматривать запущенные контейнеры, доступные образы, переменные среды, журналы и сопоставления портов, проверять файловую систему, подключать отладчик или открывать окно терминала в среде контейнера. См. Использование окна "Контейнеры".
Предварительные требования
Поддержка Docker в Visual Studio
Поддержка Docker в Visual Studio оптимизировалась с каждым выпуском программы с учетом пожеланий пользователей. Есть два уровня поддержки Docker, которые можно добавить в проект. Набор поддерживаемых возможностей зависит от типа проекта и версии Visual Studio. Если вам необходим контейнер для работы над отдельным проектом, а не оркестрация, для некоторых типов проектов можно просто добавить поддержку Docker. Следующий уровень — это поддержка оркестрации контейнеров, в рамках которой добавляются соответствующие файлы поддержки для определенного оркестратора по выбору.
В Visual Studio 2022 можно использовать Docker Compose или Service Fabric в качестве службы оркестрации контейнеров.
В Visual Studio 2022 доступно окно Контейнеры, которое позволяет просматривать запущенные контейнеры, доступные образы, переменные среды, журналы и сопоставления портов, проверять файловую систему, подключать отладчик и открывать окно терминала в среде контейнера. См. Использование окна "Контейнеры".
Требования к лицензированию Docker могут отличаться для разных версий Docker Desktop. Сведения о текущих требованиях к лицензированию для использования вашей версии Docker Desktop для разработки в вашей ситуации см. в документации по Docker.
Добавление поддержки Docker
Поддержку Docker можно включить при создании проекта, выбрав Enable Docker Support (Включить поддержку Docker), как показано на следующем снимке экрана:
При добавлении или включении поддержки Docker Visual Studio добавляет в проект следующее:
- файл Dockerfile;
- файл .dockerignore;
- ссылку пакета NuGet на Microsoft.VisualStudio.Azure.Containers.Tools.Targets.
Добавляемый Dockerfile будет похож на следующий код. В этом примере проект был назван WebApplication-Docker , и вы выбрали контейнеры Linux:
Использование окна "Контейнеры"
Окно Контейнеры позволяет просматривать контейнеры и изображения на компьютере и видеть, что происходит с ними. Вы можете просматривать файловую систему, подключенные тома, переменные среды, используемые порты и проверять файлы журнала.
Откройте окно Контейнеры с помощью быстрого запуска (CTRL+Q) и введите containers . С помощью элементов управления закрепления окно можно поместить в другое место. Из-за ширины окна оно лучше подходит для закрепления в нижней части экрана.
Выберите контейнер и используйте вкладки для просмотра доступных сведений. Чтобы проверить его, запустите приложение с поддержкой Docker, откройте вкладку Файлы и разверните папку Приложения, чтобы увидеть развернутое приложение в контейнере.
Дополнительные сведения см. в статье Использование окна "Контейнеры".
Поддержка Docker Compose
Если требуется создать многоконтейнерное решение с помощью Docker Compose, добавьте в проекты поддержку оркестратора контейнеров. Это позволит выполнять и отлаживать группу контейнеров (всего решения или группы проектов) одновременно, если они определяются в одном файле docker-compose.yml.
Чтобы добавить поддержку оркестратора контейнеров с помощью Docker Compose, щелкните правой кнопкой мыши узел проекта в Обозревателе решений и выберите Добавить > Поддержка оркестратора контейнеров. Затем выберите Docker Compose для управления контейнерами.
После добавления поддержки оркестратора контейнеров в проект в него добавится файл Dockerfile (если его не было прежде), а в само решение в окне Обозреватель решений — папка docker-compose, как показано на следующем снимке экрана:
Если файл docker-compose.yml уже существует, Visual Studio просто добавит в него необходимые строки кода конфигурации.
Повторите этот процесс с другими проектами, которыми нужно управлять с помощью Docker Compose.
При работе с большим количеством служб можно сэкономить время и вычислительные ресурсы, выбрав подмножество служб, которые следует запустить в сеансе отладки. См. Запуск подмножества служб Compose.
Поддержка Service Fabric
Средства Service Fabric для Visual Studio позволяют выполнять разработку и отладку в локальной среде и Azure Service Fabric, а также развертывание в Azure.
Visual Studio 2017 версии 15.9 и более поздних версий с установленной рабочей нагрузкой разработки Azure поддерживает разработку контейнерных микрослужб с помощью контейнеров Windows и оркестрации Service Fabric.
Visual Studio 2019 и более поздние версии поддерживают разработку контейнерных микрослужб с помощью контейнеров Windows и оркестрации Service Fabric.
Непрерывная интеграция и непрерывное развертывание (CI/CD)
Visual Studio легко интегрируется с Azure Pipelines для автоматической и непрерывной интеграции и поставки изменений в код и настройки служб. Чтобы приступить к работе, см. статью о создании конвейера.
Дальнейшие действия
Чтобы получить дополнительные сведения о реализации служб и использовании средств Visual Studio для работы с контейнерами, ознакомьтесь со следующими статьями:
Разработка с помощью Средств Docker, входящих в состав Visual Studio 2022 версии 17.0 и более поздних, осуществляется так же, как с помощью Visual Studio Code и Docker CLI (они фактически основаны на одной версии Docker CLI). Но их проще запускать, с ними проще работать, и они повышают продуктивность при выполнении сборки, запуска и компоновки задач. Они также позволяют запускать и отлаживать контейнеры с помощью стандартных сочетаний клавиш F5 и Ctrl+F5 в Visual Studio. Вы можете даже отладить все решение, если его контейнеры определены в одном файле docker-compose.yml на уровне решения.
Настройка локальной среды
С помощью последних версий Docker для Windows разрабатывать приложения Docker стало еще легче благодаря простоте настройки, как описано в следующих справочниках.
Поддержка Docker в Visual Studio
Рис. 4-31. Добавление поддержки Docker в проект Visual Studio
Добавление поддержки Docker
Рис. 4-32. Включение поддержки Docker во время создания проекта в Visual Studio
При добавлении или включении поддержки Docker Visual Studio добавляет в проект файл Dockerfile, который содержит ссылки на все необходимые проекты из решения.
Добавление поддержки оркестрации контейнеров
Если требуется создать многоконтейнерное решение, добавьте в проекты поддержку оркестрации контейнеров. Это позволит выполнять и отлаживать группу контейнеров (все решение) одновременно, если они определяются в одном файле docker-compose.yml.
Чтобы добавить поддержку оркестрации контейнеров, щелкните правой кнопкой мыши узел проекта в Обозреватель решений и выберите команду "Добавить > поддержку оркестрации контейнеров". Затем выберите Docker Compose для управления контейнерами.
После добавления поддержки оркестрации контейнеров в проект в него добавится файл Dockerfile, а в само решение в обозревателе решений — папка docker-compose, как показано на рис. 4-33:
Рис. 4-33. Файлы Docker в обозревателе решений Visual Studio
Если файл docker-compose.yml уже существует, Visual Studio просто добавит в него необходимые строки кода конфигурации.
Настройка средств Docker
В главном меню выберите пункт "Параметры инструментов" >и разверните узел "Средства > контейнеров" Параметры. Появятся параметры инструментов для контейнера.
Рис. 4-34. Параметры средств Docker
Чтобы получить дополнительные сведения о реализации служб и использовании средств Visual Studio для Docker, ознакомьтесь со следующими статьями:
The Docker extension makes it easy to build, manage, and deploy containerized applications in Visual Studio Code.
This page provides an overview of the Docker extension capabilities; use the side menu to learn more about topics of interest. If you are just getting started with Docker development, try the Docker tutorial first to understand key Docker concepts.
Installation
Install Docker on your machine and add it to the system path.
On Linux, you should also enable Docker CLI for the non-root user account that will be used to run VS Code.
To install the extension, open the Extensions view ( ⇧⌘X (Windows, Linux Ctrl+Shift+X ) ), search for docker to filter results and select Docker extension authored by Microsoft.
Editing Docker files
You can get IntelliSense when editing your Dockerfile and docker-compose.yml files, with completions and syntax help for common commands.
In addition, you can use the Problems panel ( ⇧⌘M (Windows, Linux Ctrl+Shift+M ) ) to view common errors for Dockerfile and docker-compose.yml files.
Generating Docker files
You can add Docker files to your workspace by opening the Command Palette ( ⇧⌘P (Windows, Linux Ctrl+Shift+P ) ) and using Docker: Add Docker Files to Workspace command. The command will generate Dockerfile and .dockerignore files and add them to your workspace. The command will also ask you if you want to add Docker Compose files as well, but this is optional.
Docker Explorer
The Docker extension contributes a Docker Explorer view to VS Code. The Docker Explorer lets you examine and manage Docker assets: containers, images, volumes, networks, and container registries. If the Azure Account extension is installed, you can browse your Azure Container Registries as well.
The right-click menu provides access to commonly used commands for each type of asset.
You can rearrange the Docker Explorer panes by dragging them up or down with a mouse and use the context menu to hide or show them.
Docker commands
Many of the most common Docker commands are built right into the Command Palette:
You can run Docker commands to manage images, networks, volumes, image registries, and Docker Compose. In addition, the Docker: Prune System command will remove stopped containers, dangling images, and unused networks and volumes.
Docker Compose
Docker Compose lets you define and run multi-container applications with Docker. Our Compose Language Service in the Docker extension gives you IntelliSense and tab completions when authoring docker-compose.yml files. Press ⌃Space (Windows, Linux Ctrl+Space ) to see a list of valid Compose directives.
We also provide tooltips when you hover over a Docker Compose YAML attribute.
While Compose Up allows you to run all of your services at once, our new feature Compose Up - Select Services lets you select any combination of the services you want to run.
Once your Compose Up command completes, navigate to the Docker Explorer to view your services as a Compose Group. This allows you to start, stop, and view the logs of each service as a group.
Using image registries
An image in an Azure Container Registry can be deployed to Azure App Service directly from VS Code. See Deploy images to Azure App Service to get started. For more information about how to authenticate to and work with registries, see Using container registries.
Debugging services running inside a container
Azure CLI integration
You can start Azure CLI (command-line interface) in a standalone, Linux-based container with Docker Images: Run Azure CLI command. This gives you access to the full Azure CLI command set in an isolated environment. For more information on available commands, see Get started with Azure CLI.
Check out the Working with containers topic on the Visual Studio Code documentation site to get started.
The Docker extension wiki has troubleshooting tips and additional technical information.
Installation
Install Docker on your machine and add it to the system path.
On Linux, you should enable rootless Docker and set the generated Docker context to "rootless" (more secure) or enable Docker CLI for the non-root user account (less secure) that will be used to run VS Code.
To install the extension, open the Extensions view, search for docker to filter results and select Docker extension authored by Microsoft.
Overview of the extension features
Editing Docker files
You can get IntelliSense when editing your Dockerfile and docker-compose.yml files, with completions and syntax help for common commands.
In addition, you can use the Problems panel (Ctrl+Shift+M on Windows/Linux, Shift+Command+M on Mac) to view common errors for Dockerfile and docker-compose.yml files.
Generating Docker files
You can add Docker files to your workspace by opening the Command Palette (F1) and using Docker: Add Docker Files to Workspace command. The command will generate a Dockerfile and .dockerignore file and add them to your workspace. The command will also ask you if you want to add Docker Compose files as well, but this is optional.
Docker Explorer
The Docker extension contributes a Docker Explorer view to VS Code. The Docker Explorer lets you examine and manage Docker assets: containers, images, volumes, networks, and container registries. If the Azure Account extension is installed, you can browse your Azure Container Registries as well.
The right-click menu provides access to commonly used commands for each type of asset.
You can rearrange the Docker view panes by dragging them up or down with a mouse and use the context menu to hide or show them.
Docker commands
Many of the most common Docker commands are built right into the Command Palette:
You can run Docker commands to manage images, networks, volumes, image registries, and Docker Compose. In addition, the Docker: Prune System command will remove stopped containers, dangling images, and unused networks and volumes.
Docker Compose
Docker Compose lets you define and run multi-container applications with Docker. Our Compose Language Service in the Docker extension gives you IntelliSense and tab completions when authoring docker-compose.yml files. Press Ctrl+Space to see a list of valid Compose directives.
We also provide tooltips when you hover over a Docker Compose YAML attribute.
While Compose Up allows you to run all of your services at once, our new feature Compose Up - Select Services lets you select any combination of the services you want to run.
Once your Compose Up command completes, navigate to the Docker Explorer to view your services as a Compose Group. This allows you to start, stop, and view the logs of each service as a group.
Using image registries
You can display the content and push, pull, or delete images from Docker Hub and Azure Container Registry:
An image in an Azure Container Registry can be deployed to Azure App Service directly from VS Code. See Deploy images to Azure App Service to get started. For more information about how to authenticate to and work with registries, see Using container registries.
Debugging services running inside a container
Azure CLI integration
You can start Azure CLI (command-line interface) in a standalone, Linux-based container with Docker Images: Run Azure CLI command. This gives you access to the full Azure CLI command set in an isolated environment. For more information on available commands, see Get started with Azure CLI.
Contributing
See the contribution guidelines for ideas and guidance on how to improve the extension. Thank you!
Code of Conduct
Telemetry
VS Code collects usage data and sends it to Microsoft to help improve our products and services. Read our privacy statement to learn more. If you don’t wish to send usage data to Microsoft, you can set the telemetry.telemetryLevel setting to off . Learn more in our FAQ.
Читайте также: