diff --git a/api/working-with-extensions/images/publishing-extension/publisher-id-and-name.png b/api/working-with-extensions/images/publishing-extension/publisher-id-and-name.png index 559ea88ebd..a681be4884 100644 --- a/api/working-with-extensions/images/publishing-extension/publisher-id-and-name.png +++ b/api/working-with-extensions/images/publishing-extension/publisher-id-and-name.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e7b29edcc42fc3ae659367240fa7115b089ae4ec1c7db3c8070cf625d88386db -size 93630 +oid sha256:1d1d778890cb5a42c1a32d652049badaaa9e88b6fb46cf2551bebf0866194826 +size 35342 diff --git a/api/working-with-extensions/publishing-extension.md b/api/working-with-extensions/publishing-extension.md index ef82e1b160..1e4f535de4 100644 --- a/api/working-with-extensions/publishing-extension.md +++ b/api/working-with-extensions/publishing-extension.md @@ -104,7 +104,7 @@ To create a publisher: - **ID**: the **unique** identifier for your publisher in Marketplace that will be used in your extension URLs. ID cannot be changed once created. - **Name**: the **unique** name of your publisher that will be displayed in Marketplace with your extensions. This can be your company or brand name. - Below is an example of publisher identifier and name for the Docker extension: + Below is an example of publisher identifier and name for the Python extension: ![Example of publisher identifier and name](images/publishing-extension/publisher-id-and-name.png) diff --git a/docs/azure/containers.md b/docs/azure/containers.md new file mode 100644 index 0000000000..6e2f71217a --- /dev/null +++ b/docs/azure/containers.md @@ -0,0 +1,12 @@ +--- +Order: 4 +Area: azure +TOCTitle: Containers +ContentId: 42F8B9F8-BD03-4159-9479-17C5BDE30531 +PageTitle: Working with containers in Visual Studio Code +DateApproved: 02/1/2024 +MetaDescription: Working with containers in Visual Studio Code. +--- +# Working with Containers + +This page is redirected to /docs/containers/overview.md and only exists to keep the "Containers" TOC item. diff --git a/docs/azure/docker.md b/docs/azure/docker.md deleted file mode 100644 index 653a76e966..0000000000 --- a/docs/azure/docker.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -Order: 4 -Area: azure -TOCTitle: Docker -ContentId: 42F8B9F8-BD03-4159-9479-17C5BDE30531 -PageTitle: Working with Docker in Visual Studio Code -DateApproved: 02/1/2024 -MetaDescription: Working with Docker containers in Visual Studio Code. ---- -# Working with Docker - -This page is redirected to /docs/containers/overview.md and only exists to keep the "Docker" TOC item. diff --git a/docs/azure/kubernetes.md b/docs/azure/kubernetes.md index b05e6694e3..3b69996499 100644 --- a/docs/azure/kubernetes.md +++ b/docs/azure/kubernetes.md @@ -29,7 +29,7 @@ To install the Kubernetes extension, open the Extensions view (`kb(workbench.vie ## Containerize and publish the application -You can follow the [Working with Docker](/docs/azure/docker.md) tutorial to build your project, generate a Docker image, and push it to a public or private container registry through the Microsoft [Docker Extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker). +You can follow the [Working with Docker](/docs/azure/docker.md) tutorial to build your project, generate a Docker image, and push it to a public or private container registry through the Microsoft [Container Tools Extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers). ## Create and config a Kubernetes cluster diff --git a/docs/configure/profiles.md b/docs/configure/profiles.md index 911697ad90..999235c652 100644 --- a/docs/configure/profiles.md +++ b/docs/configure/profiles.md @@ -194,7 +194,7 @@ VS Code comes with a predefined set of profile templates that you can use to cus The Python profile is a good starting point for Python development. It comes with Python specific snippets and has the following extensions: * [autoDocstring](https://marketplace.visualstudio.com/items?itemName=njpwerner.autodocstring) - Generate Python docstrings automatically. -* [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) - Create, manage, and debug containerized applications. +* [Container Tools](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) - Create, manage, and debug containerized applications. * [Even Better TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) - Fully-featured TOML support for e.g. `pyproject.toml` files. * [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) - IntelliSense, environment management, debugging, refactoring. * [Python Environments](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-python-envs) - Manage Python environments and packages using your preferred environment manager. @@ -285,11 +285,11 @@ This profile also sets the following settings: The Node.js profile is a good starting point for all Node.js work. It comes with the following extensions: -* [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - Integrates ESLint JavaScript into VS Code. +* [Container Tools](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) - Create, manage, and debug containerized applications. * [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) - Create custom development environments inside a Docker container. -* [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) - Create, manage, and debug containerized applications. * [DotENV](https://marketplace.visualstudio.com/items?itemName=mikestead.dotenv) - Support for dotenv file syntax. * [EditorConfig for VS Code](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) - EditorConfig Support for Visual Studio Code. +* [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - Integrates ESLint JavaScript into VS Code. * [JavaScript (ES6) code snippets](https://marketplace.visualstudio.com/items?itemName=xabikos.JavaScriptSnippets) - Code snippets for JavaScript in ES6 syntax. * [Jest](https://marketplace.visualstudio.com/items?itemName=Orta.vscode-jest) - Use Facebook's [jest](https://jestjs.io) testing framework. * [Microsoft Edge Tools for VS Code](https://marketplace.visualstudio.com/items?itemName=ms-edgedevtools.vscode-edge-devtools) - Use the Microsoft Edge Tools from within VS Code. diff --git a/docs/containers/app-service.md b/docs/containers/app-service.md index c951197933..facb598872 100644 --- a/docs/containers/app-service.md +++ b/docs/containers/app-service.md @@ -18,8 +18,8 @@ In this guide you will learn how to: ## Prerequisites - An Azure subscription. -- [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) and [Azure App Service](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice) extensions must be installed. -- A [**web** application](https://learn.microsoft.com/azure/app-service/tutorial-custom-container) that produces a docker image. You could also follow [Create a sample ASP .NET Core application](/docs/containers/quickstart-aspnet-core.md) to create such application. +- The [Container Tools](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) and [Azure App Service](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice) extensions must be installed. +- A [**web** application](https://learn.microsoft.com/azure/app-service/tutorial-custom-container) that produces a container image. You could also follow [Create a sample ASP .NET Core application](/docs/containers/quickstart-aspnet-core.md) to create such application. - You need a [Docker Hub](https://hub.docker.com/) account or an instance of [Azure Container Registry (ACR)](https://learn.microsoft.com/azure/container-registry/container-registry-get-started-portal). ## Create the application image @@ -28,11 +28,11 @@ If you already have an image, skip this step and proceed to [Push the image to a 1. Open the application folder in VS Code. -2. Open Command Palette (`kb(workbench.action.showCommands)`) and use **Docker Images: Build Image...** command to build the image. +2. Open Command Palette (`kb(workbench.action.showCommands)`) and use **Container Images: Build Image...** command to build the image. ![Build container image](images/app-service/command-build-image.png) - You can find the image name in the output of the Build Image command, the same can be found in the Images pane of the Docker Explorer. + You can find the image name in the output of the Build Image command, the same can be found in the Images pane of the Container Explorer. ![Build image output](images/app-service/terminal-output-build-image.png) @@ -40,7 +40,7 @@ If you already have an image, skip this step and proceed to [Push the image to a Before deploying the image to an App Service or a Container App, the image must be uploaded to a container registry. The image can be uploaded to either [Azure Container Registry (ACR)](https://learn.microsoft.com/azure/container-registry/container-registry-get-started-portal) or [Docker Hub](https://hub.docker.com/). -1. Open the Docker Explorer and select **Connect Registry...** icon under **Registries** group and follow the prompt. Choose the provider (Azure or Docker Hub) and provide the credential to connect to the registry. +1. Open the Container Explorer and select **Connect Registry...** icon under **Registries** group and follow the prompt. Choose the provider (Azure or Docker Hub) and provide the credential to connect to the registry. ![Connect to Registry](images/app-service/explorer-connect-registry.png) @@ -48,15 +48,15 @@ Before deploying the image to an App Service or a Container App, the image must ![Registries](images/app-service/explorer-registries.png) -3. Optionally, tag the image. In order to upload an image to a registry, the image needs to be tagged with registry name so that the docker push will upload it to the right registry. - - To create a registry in Azure ACR, open the **Registries** section of the Docker view, sign in to Azure if not already signed in, and then right-click on the subscription you want to use, and choose **Create Registry**. - - The image built in previous section will appear in the Docker Explorer under Images section. Right-click and choose **Tag...**. +3. Optionally, tag the image. In order to upload an image to a registry, the image needs to be tagged with registry name so that the `docker push` command will upload it to the right registry. + - To create a registry in Azure ACR, open the **Registries** section of the Container Explorer, sign in to Azure if not already signed in, and then right-click on the subscription you want to use, and choose **Create Registry**. + - The image built in previous section will appear in the Container Explorer under Images section. Right-click and choose **Tag...**. ![Tag image](images/app-service/explorer-tag-image.png) - Specify the new name `/:` and complete the tag action. For example, new image name for ACR named WebApp6 would be 'webapp6.azurecr.io/webapp6:latest' and for Docker Hub it would be 'myusername/webapp6:latest'. -4. The image will show up in the Docker Explorer under the registry that the image tag points to. Select this image and choose **Push**. If the image has not yet been tagged, you will be prompted to choose a registry to push to, and the image will be tagged based on the selection. +4. The image will show up in the Container Explorer under the registry that the image tag points to. Select this image and choose **Push**. If the image has not yet been tagged, you will be prompted to choose a registry to push to, and the image will be tagged based on the selection. ![Push image](images/app-service/explorer-push-image.png) @@ -68,7 +68,7 @@ Before deploying the image to an App Service or a Container App, the image must In the previous section, the image is pushed to a remote container registry. Now deploy this image to Azure App Service or Azure Container Apps. -1. In Docker Explorer, navigate to your image under Registries, right-click on the tag, and select **Deploy Image To Azure App Service...** or **Deploy Image to Azure Container Apps...**. +1. In Container Explorer, navigate to your image under Registries, right-click on the tag, and select **Deploy Image To Azure App Service...** or **Deploy Image to Azure Container Apps...**. ![Deploy to Azure App Service](images/app-service/explorer-deploy-to-app-service.png) @@ -81,7 +81,7 @@ In the previous section, the image is pushed to a remote container registry. Now ![Deployment complete notification](images/app-service/notification-appservice-deployment.png) -4. You can also see the results in the Output panel of Visual Studio Code, in the Docker section. +4. You can also see the results in the Output panel of Visual Studio Code, in the Container Tools section. ![Deployment complete output](images/app-service/output-appservice-deployment.png) diff --git a/docs/containers/choosing-dev-environment.md b/docs/containers/choosing-dev-environment.md index 9105ff3651..3e35dcb04d 100644 --- a/docs/containers/choosing-dev-environment.md +++ b/docs/containers/choosing-dev-environment.md @@ -28,7 +28,7 @@ The second important choice is whether to debug your service running as an ordin 1. Debugging your service running in a container is possible, but brings additional complexity. Use normal debugging by default, and debugging in the container when you need it. -> The Docker extension natively supports container debugging for .NET-, Node.js-, and Python-based services. +> The Container Tools extension natively supports container debugging for .NET-, Node.js-, and Python-based services. ## Enabling Docker CLI inside a remote development environment @@ -86,11 +86,11 @@ After Docker is installed and working on the remote machine, you can use VS Code 1. A new VS Code window opens, running in the context of the target machine. If you're using password authentication, the password will be prompted here. We strongly recommend that you set up [SSH key authentication](https://www.ssh.com/ssh/public-key-authentication), for ease of use. -1. In the Extensions view, install the Docker extension (on the remote host) (a reload may be required after this step): +1. In the Extensions view, install the Container Tools extension (on the remote host) (a reload may be required after this step): - ![Screenshot - Installing the Docker extension](images/devenv/install-in-ssh.png) + ![Screenshot - Installing the Container Tools extension](images/devenv/install-in-ssh.png) ->**Note**: If you are using the Docker extension to build Docker images and have source code, the approach above probably means you have your source enlistment on the remote host, rather than on your developer workstation. If you are just using the Docker extension for the Docker Explorer features, then you can disregard this. +>**Note**: If you are using the Container Tools extension to build container images and have source code, the approach above probably means you have your source enlistment on the remote host, rather than on your developer workstation. If you are just using the Container Tools extension for the Container Explorer features, then you can disregard this. ### Local Linux VM @@ -100,7 +100,7 @@ Alternatively, you can install just the Docker CLI inside your development envir ## Debugging in a container -The Docker extension supports debugging .NET and Node.js-based services running inside a container. Other programming languages are not supported at this time. +The Container Tools extension supports debugging .NET and Node.js-based services running inside a container. Other programming languages are not supported at this time. Debugging in a container may be harder to set up than regular debugging because a container is a stronger isolation mechanism than a process. In particular: @@ -109,7 +109,7 @@ Debugging in a container may be harder to set up than regular debugging because Because of the concerns above, it is generally recommended to use regular debugging, and employ debugging in a container when necessary. -For more information about how to set up debugging inside a container see [ASP.NET Core quickstart](/docs/containers/quickstart-aspnet-core.md), [Node.js quickstart](/docs/containers/quickstart-node.md), and [Docker extension task properties](/docs/containers/reference.md) (`docker-build` and `docker-run` tasks). +For more information about how to set up debugging inside a container see [ASP.NET Core quickstart](/docs/containers/quickstart-aspnet-core.md), [Node.js quickstart](/docs/containers/quickstart-node.md), and [Container Tools extension task properties](/docs/containers/reference.md) (`docker-build` and `docker-run` tasks). ## Next steps diff --git a/docs/containers/debug-common.md b/docs/containers/debug-common.md index a57fd36624..c751353add 100644 --- a/docs/containers/debug-common.md +++ b/docs/containers/debug-common.md @@ -3,31 +3,31 @@ Order: 5 Area: containers TOCTitle: Debug ContentId: A1371726-5310-4923-B43B-240F36C6264E -PageTitle: Debug an app running in a Docker container +PageTitle: Debug an app running in a container DateApproved: 12/14/2023 -MetaDescription: Debug an app running in a Docker container, using Visual Studio Code. +MetaDescription: Debug an app running in a container, using Visual Studio Code. --- # Debug containerized apps -The Docker extension provides more support for debugging applications within Docker containers, such as scaffolding `launch.json` configurations for attaching a debugger to applications running within a container. +The Container Tools extension provides more support for debugging applications within containers, such as scaffolding `launch.json` configurations for attaching a debugger to applications running within a container. -The Docker extension provides a `docker` debug configuration provider that manages how VS Code will launch an application and/or attach a debugger to the application in a running Docker container. This provider is configured via entries within `launch.json`, with configuration being specific to each application platform supported by the provider. +The Container Tools extension provides a `docker` debug configuration provider that manages how VS Code will launch an application and/or attach a debugger to the application in a running container. This provider is configured via entries within `launch.json`, with configuration being specific to each application platform supported by the provider. -The Docker extension currently supports debugging [Node.js](#nodejs), [Python](#python), and [.NET](#net) applications within Docker containers. +The Container Tools extension currently supports debugging [Node.js](#nodejs), [Python](#python), and [.NET](#net) applications within containers. ## Requirements -Scaffolding or pasting a launch configuration into `launch.json` is **not sufficient** to build and debug a Docker container. To successfully run a Docker launch configuration, you must have: +Scaffolding or pasting a launch configuration into `launch.json` is **not sufficient** to build and debug a container. To successfully run a container launch configuration, you must have: - A Dockerfile. - `docker-build` and `docker-run` tasks in `tasks.json`. - A launch configuration that invokes these tasks. -We recommend using the **Docker: Add Docker Files to Workspace...** command to create these items, if none of these assets already exist. If you already have a functional Dockerfile, we recommend using the **Docker: Initialize for Docker debugging** command to scaffold a launch configuration and Docker-related tasks. +We recommend using the **Containers: Add Docker Files to Workspace...** command to create these items, if none of these assets already exist. If you already have a functional Dockerfile, we recommend using the **Containers: Initialize for container debugging** command to scaffold a launch configuration and container-related tasks. ## Node.js -More information about debugging Node.js applications within Docker containers can be found at [Debug Node.js within a container](/docs/containers/debug-node.md). +More information about debugging Node.js applications within containers can be found at [Debug Node.js within a container](/docs/containers/debug-node.md). Example `launch.json` configuration for debugging a Node.js application: @@ -35,7 +35,7 @@ Example `launch.json` configuration for debugging a Node.js application: { "configurations": [ { - "name": "Docker Node.js Launch", + "name": "Containers: Node.js Launch", "type": "docker", "request": "launch", "preLaunchTask": "docker-run: debug", @@ -47,7 +47,7 @@ Example `launch.json` configuration for debugging a Node.js application: ## Python -More information about debugging Python applications within Docker containers can be found at [Debug Python within a container](/docs/containers/debug-python.md). +More information about debugging Python applications within containers can be found at [Debug Python within a container](/docs/containers/debug-python.md). Example `launch.json` configuration for debugging a Python application: @@ -55,7 +55,7 @@ Example `launch.json` configuration for debugging a Python application: { "configurations": [ { - "name": "Docker: Python - Django", + "name": "Containers: Python - Django", "type": "docker", "request": "launch", "preLaunchTask": "docker-run: debug", @@ -75,14 +75,14 @@ Example `launch.json` configuration for debugging a Python application: ## .NET -You can choose between two ways of building and debugging your project within Docker containers: +You can choose between two ways of building and debugging your project within containers: - **With .NET SDK**: If you are familiar with `MSBuild` or want to containerize your project without a Dockerfile, this is the recommended choice. >**Note**: This option is only available for .NET SDK 7 and above and uses the `dotnet publish` command to build the image. - **With a Dockerfile**: If you prefer customizing your project with a `Dockerfile`, choose this option. -For more details about these two options, refer to [Debug .NET within Docker containers](/docs/containers/debug-netcore.md). +For more details about these two options, refer to [Debug .NET within containers](/docs/containers/debug-netcore.md). Example `launch.json` configuration for debugging a .NET application using `Dockerfile`: @@ -91,10 +91,10 @@ Example `launch.json` configuration for debugging a .NET application using `Dock "version": "0.2.0", "configurations": [ { - "name": "Launch .NET Core in Docker", + "name": "Containers: .NET Launch", "type": "docker", "request": "launch", - "preLaunchTask": "Run Docker Container", + "preLaunchTask": "Run Container", "netCore": { "appProject": "${workspaceFolder}/project.csproj" } @@ -108,12 +108,12 @@ Example `launch.json` configuration for debugging a .NET application using `Dock | Property | Description | | --- | --- | | `containerName` | Name of the container used for debugging. | -| `dockerServerReadyAction` | Options for launching a browser to the Docker container. Similar to serverReadyAction, but replaces container ports with host ports. | +| `dockerServerReadyAction` | Options for launching a browser to the container. Similar to serverReadyAction, but replaces container ports with host ports. | | `removeContainerAfterDebug` | Whether to remove the debug container after debugging. | | `platform` | The target platform for the application. Can be `netCore` or `node`. | -| `netCore` | Options for debugging .NET projects in Docker. | -| `node` | Options for debugging Node.js projects in Docker. | -| `python` | Options for debugging Python projects in Docker. | +| `netCore` | Options for debugging .NET projects in containers. | +| `node` | Options for debugging Node.js projects in containers. | +| `python` | Options for debugging Python projects in containers. | ### dockerServerReadyAction object properties @@ -139,7 +139,7 @@ Example `launch.json` configuration for debugging a .NET application using `Dock | `timeout` | Optional. When restarting a session, give up after this number of milliseconds. | | `stopOnEntry` | Optional. Break immediately when the program launches. | | `localRoot` | Optional. VS Code's root directory. | The root workspace folder. | -| `remoteRoot` | Optional. Node's root directory within the Docker container. | `/usr/src/app` | +| `remoteRoot` | Optional. Node's root directory within the container. | `/usr/src/app` | | `smartStep` | Optional. Try to automatically step over code that doesn't map to source files. | | `skipFiles` | Optional. Automatically skip files covered by these glob patterns. | | `trace` | Optional. Enable diagnostic output. | @@ -168,8 +168,8 @@ Example `launch.json` configuration for debugging a .NET application using `Dock Read on to learn more about: -- [Debugging Node.js within Docker containers](/docs/containers/debug-node.md) -- [Debugging Python within Docker containers](/docs/containers/debug-python.md) -- [Debugging .NET within Docker containers](/docs/containers/debug-netcore.md) +- [Debugging Node.js within containers](/docs/containers/debug-node.md) +- [Debugging Python within containers](/docs/containers/debug-python.md) +- [Debugging .NET within containers](/docs/containers/debug-netcore.md) - [Debugging with Docker Compose](/docs/containers/docker-compose.md#debug) - [Troubleshooting](/docs/containers/troubleshooting.md) diff --git a/docs/containers/debug-netcore.md b/docs/containers/debug-netcore.md index ff1f1c2908..5221c59ed3 100644 --- a/docs/containers/debug-netcore.md +++ b/docs/containers/debug-netcore.md @@ -1,9 +1,9 @@ --- Area: containers ContentId: B1DF33C0-400C-413D-B60B-D1AA278F6DE3 -PageTitle: Debug a .NET app running in a Docker container +PageTitle: Debug a .NET app running in a container DateApproved: 12/14/2023 -MetaDescription: Debug a .NET app running in a Docker container, using Visual Studio Code. +MetaDescription: Debug a .NET app running in a container, using Visual Studio Code. --- # Debug .NET within a container @@ -32,9 +32,9 @@ There are two ways to build and debug your app inside a container: using a Docke This option is supported for web projects, and is available when Docker is set to use Linux containers. 1. Press `kb(workbench.action.debug.start)` or choose **Start Debugging** from the **Run** menu. (If you have any existing launch profiles in `launch.json`, you can comment them out with `kb(editor.action.commentLine)`) -1. You're prompted with a list of debuggers. Choose **Docker: Debug in Container** +1. You're prompted with a list of debuggers. Choose **Containers: Debug in Container** 1. When prompted with options to either build with a `Dockerfile` (**Use a Dockerfile**) or build using the .NET SDK (**Use .NET SDK**), select **Use .NET SDK**. -1. If you have multiple project files in your workspace, choose the project file associated with the project you want to debug. If the build is successful, your .NET app runs in a Docker container, and the web app opens in your browser. +1. If you have multiple project files in your workspace, choose the project file associated with the project you want to debug. If the build is successful, your .NET app runs in a container, and the web app opens in your browser. >**Note**: Supported .NET SDK Versions: This feature is available for .NET SDK version 7.0.300 and above by default. For versions between 7.0.100 and 7.0.300, enable it with `dotnet add package Microsoft.NET.Build.Containers`. You can read more about .NET SDK Container build on [Microsoft Learn](https://learn.microsoft.com/en-us/dotnet/core/docker/publish-as-container). @@ -45,9 +45,9 @@ This option is supported for web projects, and is available when Docker is set t ![csharpPrompt](images/debug/csharp-prompt.png) -1. Open the Command Palette (`kb(workbench.action.showCommands)`) and enter **Docker: Add Docker Files to Workspace...**. If you have already dockerized your app, you can instead do **Docker: Initialize for Docker debugging**. Follow the prompts. +1. Open the Command Palette (`kb(workbench.action.showCommands)`) and enter **Containers: Add Docker Files to Workspace...**. If you have already containerized your app, you can instead do **Containers: Initialize for container debugging**. Follow the prompts. 1. Switch to the **Run and Debug** view (`kb(workbench.view.debug)`). -1. Select the **Docker .NET Core Launch** launch configuration. +1. Select the **Containers: .NET Launch** launch configuration. 1. Start debugging! (`kb(workbench.action.debug.start)`) ## Running and debugging with SSL support @@ -89,7 +89,7 @@ If you have a workspace folder with multiple .NET project files and you want to ![dockerSharedFolders](images/debug/debugger-scaffolding.png) -1. Select **Docker: Debug in Container** +1. Select **Containers: Debug in Container** 1. Choose the project file associated with the project you want to debug Your project preference is saved, and you no longer need to choose a project file on `kb(workbench.action.debug.start)` \ No newline at end of file diff --git a/docs/containers/debug-node.md b/docs/containers/debug-node.md index d37c64e7cb..737427e570 100644 --- a/docs/containers/debug-node.md +++ b/docs/containers/debug-node.md @@ -1,20 +1,20 @@ --- Area: containers ContentId: F0C800DD-C477-492D-9545-745F570FE042 -PageTitle: Configure and troubleshoot debugging of Node.js apps running in a Docker container +PageTitle: Configure and troubleshoot debugging of Node.js apps running in a container DateApproved: 12/21/2022 -MetaDescription: How to configure and troubleshoot debugging of Node.js apps running in a Docker container, using Visual Studio Code. +MetaDescription: How to configure and troubleshoot debugging of Node.js apps running in a container, using Visual Studio Code. --- # Debug Node.js within a container -When adding Docker files to a Node.js project, tasks and launch configurations are added to enable debugging that application within a Docker container. However, due to the large ecosystem surrounding Node.js, those tasks cannot accommodate every application framework or library, which means that some applications will require additional configuration. +When adding Docker files to a Node.js project, tasks and launch configurations are added to enable debugging that application within a container. However, due to the large ecosystem surrounding Node.js, those tasks cannot accommodate every application framework or library, which means that some applications will require additional configuration. -## Configuring the Docker container entry point +## Configuring the container entry point -The Docker extension infers the entry point of the Docker container--that is, the command line for starting the application in a debug mode within the Docker container--via properties of `package.json`. The extension first looks for the `start` script in the `scripts` object; if found and, if it starts with a `node` or `nodejs` command, it uses that to build the command line for starting the application in debug mode. If not found or, if not a recognized `node` command, the `main` property in the `package.json` is used. If neither is found or recognized, then you need to explicitly set the `dockerRun.command` property of the `docker-run` task used to start the Docker container. +The Container Tools extension infers the entry point of the container--that is, the command line for starting the application in a debug mode within the container--via properties of `package.json`. The extension first looks for the `start` script in the `scripts` object; if found and, if it starts with a `node` or `nodejs` command, it uses that to build the command line for starting the application in debug mode. If not found or, if not a recognized `node` command, the `main` property in the `package.json` is used. If neither is found or recognized, then you need to explicitly set the `dockerRun.command` property of the `docker-run` task used to start the container. -Some Node.js application frameworks include CLIs for managing the application and are used to start the application in the `start` script, which obscure the underlying `node` commands. In these cases, the Docker extension cannot infer the start command and you must explicitly configure the start command. +Some Node.js application frameworks include CLIs for managing the application and are used to start the application in the `start` script, which obscure the underlying `node` commands. In these cases, the Container Tools extension cannot infer the start command and you must explicitly configure the start command. ### Example: Configuring the entry point for a [Nest.js](https://nestjs.com/) application @@ -62,7 +62,7 @@ Some Node.js application frameworks include CLIs for managing the application an ## Automatically launching the browser to the entry page of the application -The Docker extension can automatically launch the browser to the entry point of the application after it has started in the debugger. This feature is enabled by default and configured via the `dockerServerReadyAction` object of the debug configuration in `launch.json`. +The Container Tools extension can automatically launch the browser to the entry point of the application after it has started in the debugger. This feature is enabled by default and configured via the `dockerServerReadyAction` object of the debug configuration in `launch.json`. This feature depends on several aspects of the application: @@ -137,7 +137,7 @@ The corresponding `pattern` in the debug launch configuration (in `launch.json`) { "configurations": [ { - "name": "Docker Node.js Launch", + "name": "Containers: Node.js Launch", "type": "docker", "request": "launch", "preLaunchTask": "docker-run: debug", @@ -154,7 +154,7 @@ The corresponding `pattern` in the debug launch configuration (in `launch.json`) ### Configuring the application entry page -By default, the Docker extension will open the "main" page of the browser (however that is determined by the application). If the browser should be opened to a specific page, the `uriFormat` property of the [dockerServerReadyAction](/docs/containers/debug-common.md#dockerserverreadyaction-object-properties) object of the debug launch configuration should be set to a Node.js format string, with one string token that indicates where the port should be substituted. +By default, the Container Tools extension will open the "main" page of the browser (however that is determined by the application). If the browser should be opened to a specific page, the `uriFormat` property of the [dockerServerReadyAction](/docs/containers/debug-common.md#dockerserverreadyaction-object-properties) object of the debug launch configuration should be set to a Node.js format string, with one string token that indicates where the port should be substituted. The corresponding `uriFormat` in the debug launch configuration (in `launch.json`) to open the `about.html` page instead of the main page would be: @@ -162,7 +162,7 @@ The corresponding `uriFormat` in the debug launch configuration (in `launch.json { "configurations": [ { - "name": "Docker Node.js Launch", + "name": "Containers: Node.js Launch", "type": "docker", "request": "launch", "preLaunchTask": "docker-run: debug", @@ -175,11 +175,11 @@ The corresponding `uriFormat` in the debug launch configuration (in `launch.json } ``` -## Mapping Docker container source files to the local workspace +## Mapping container source files to the local workspace -By default, the Docker extension assumes the application source files in the running Docker container are located in an `/usr/src/app` folder, and the debugger then maps those files back to the root of the opened workspace, in order to translate breakpoints from the container back to Visual Studio Code. +By default, the Container Tools extension assumes the application source files in the running container are located in an `/usr/src/app` folder, and the debugger then maps those files back to the root of the opened workspace, in order to translate breakpoints from the container back to Visual Studio Code. -If the application source files are in a different location (for example, different Node.js frameworks have different conventions), either within the Docker container or within the opened workspace, then one or both of the `localRoot` and `remoteRoot` properties of the [node](/docs/containers/debug-common.md#node-object-properties) object of the debug launch configuration should be set the root source locations within the workspace and the Docker container, respectively. +If the application source files are in a different location (for example, different Node.js frameworks have different conventions), either within the container or within the opened workspace, then one or both of the `localRoot` and `remoteRoot` properties of the [node](/docs/containers/debug-common.md#node-object-properties) object of the debug launch configuration should be set the root source locations within the workspace and the container, respectively. For example, if the application instead resides in `/usr/my-custom-location`, the corresponding `remoteRoot` property would be: @@ -187,7 +187,7 @@ For example, if the application instead resides in `/usr/my-custom-location`, th { "configurations": [ { - "name": "Docker Node.js Launch", + "name": "Containers: Node.js Launch", "type": "docker", "request": "launch", "preLaunchTask": "docker-run: debug", @@ -202,9 +202,9 @@ For example, if the application instead resides in `/usr/my-custom-location`, th ## Troubleshooting -### Docker image fails to build or start due to missing node_modules +### Container image fails to build or start due to missing node_modules -Dockerfiles are often arranged in such a way as to optimize either image build time, image size, or both. However, not every Node.js application framework supports all of the typical Node.js Dockerfile optimizations. In particular, for some frameworks, the `node_modules` folder must be an immediate subfolder of the application root folder, whereas, the Docker extension scaffolds a Dockerfile where the `node_modules` folder exists at a parent or ancestor level (which is generally allowed by Node.js). +Dockerfiles are often arranged in such a way as to optimize either image build time, image size, or both. However, not every Node.js application framework supports all of the typical Node.js Dockerfile optimizations. In particular, for some frameworks, the `node_modules` folder must be an immediate subfolder of the application root folder, whereas, the Container Tools extension scaffolds a Dockerfile where the `node_modules` folder exists at a parent or ancestor level (which is generally allowed by Node.js). The solution is to remove that optimization from the `Dockerfile`: diff --git a/docs/containers/debug-python.md b/docs/containers/debug-python.md index b3b3a92767..2d66e07e02 100644 --- a/docs/containers/debug-python.md +++ b/docs/containers/debug-python.md @@ -1,18 +1,18 @@ --- Area: containers ContentId: f9ffec31-9253-4f71-a4eb-79ea7b3a8f55 -PageTitle: Configure and troubleshoot debugging of Python apps running in a Docker container +PageTitle: Configure and troubleshoot debugging of Python apps running in a container DateApproved: 12/21/2021 -MetaDescription: How to configure and troubleshoot debugging of Python apps running in a Docker container, using Visual Studio Code. +MetaDescription: How to configure and troubleshoot debugging of Python apps running in a container, using Visual Studio Code. --- # Debug Python within a container -When adding Docker files to a Python project, tasks and launch configurations are added to enable debugging the application within a Docker container. To accommodate the various scenarios of Python projects, some apps may require additional configuration. +When adding Docker files to a Python project, tasks and launch configurations are added to enable debugging the application within a container. To accommodate the various scenarios of Python projects, some apps may require additional configuration. -## Configuring the Docker container entry point +## Configuring the container entry point -You can configure the entry point of the Docker container by setting properties in `tasks.json`. VS Code automatically configures the container entry point when you first use the **Docker: Add Docker Files to Workspace...** command. +You can configure the entry point of the container by setting properties in `tasks.json`. VS Code automatically configures the container entry point when you first use the **Containers: Add Docker Files to Workspace...** command. ### Example: Configuring the entry point for a Python module @@ -60,7 +60,7 @@ You can configure the entry point of the Docker container by setting properties ## Automatically launching the browser to the entry page of the application -You can select the **Docker: Python - Django** or **Docker: Python - Flask** launch configurations to automatically launch the browser to the main page of the app. This feature is enabled by default, but you can configure this behavior explicitly by setting the `dockerServerReadyAction` object in `launch.json`. +You can select the **Containers: Python - Django** or **Containers: Python - Flask** launch configurations to automatically launch the browser to the main page of the app. This feature is enabled by default, but you can configure this behavior explicitly by setting the `dockerServerReadyAction` object in `launch.json`. This feature depends on several aspects of the application: @@ -74,7 +74,7 @@ Here is an example of using `dockerServerReadyAction` to launch the browser to o { "configurations": [ { - "name": "Docker: Python - Django", + "name": "Containers: Python - Django", "type": "docker", "request": "launch", "preLaunchTask": "docker-run: debug", @@ -104,11 +104,11 @@ Here is an example of using `dockerServerReadyAction` to launch the browser to o - `action`: The action to take when the pattern is found. Can be `debugWithChrome` or `openExternally`. - `pattern`: If the application logs a different message than shown above, set the `pattern` property of the [dockerServerReadyAction](/docs/containers/debug-common.md#dockerserverreadyaction-object-properties) object to a [JavaScript regular expression](https://developer.mozilla.org/docs/Web/JavaScript/Guide/Regular_Expressions) that matches that message. The regular expression should include a capture group that corresponds to the port on which the application is listening. -- `uriFormat`: By default, the Docker extension will open the main page of the browser (however that is determined by the application). If you want the browser to open a specific page like the example above, the `uriFormat` property of the [dockerServerReadyAction](/docs/containers/debug-common.md#dockerserverreadyaction-object-properties) object should be set to a format string with two string tokens to indicate the protocol and port substitution. +- `uriFormat`: By default, the Container Tools extension will open the main page of the browser (however that is determined by the application). If you want the browser to open a specific page like the example above, the `uriFormat` property of the [dockerServerReadyAction](/docs/containers/debug-common.md#dockerserverreadyaction-object-properties) object should be set to a format string with two string tokens to indicate the protocol and port substitution. ## How to enable hot reloading in Django or Flask apps -When you select **Docker: Add Docker Files to Workspace** for Django or Flask, we provide you a Dockerfile and `tasks.json` configured for static deployment. Each time you make changes to your app code, you need to rebuild and re-run your container. Hot reloading allows you to visualize changes in your app code as your container continues to run. Enable hot reloading with these steps: +When you select **Containers: Add Docker Files to Workspace** for Django or Flask, we provide you a Dockerfile and `tasks.json` configured for static deployment. Each time you make changes to your app code, you need to rebuild and re-run your container. Hot reloading allows you to visualize changes in your app code as your container continues to run. Enable hot reloading with these steps: ### For Django Apps @@ -160,7 +160,7 @@ When you select **Docker: Add Docker Files to Workspace** for Django or Flask, w } ``` -1. Select the **Docker: Python – Django** launch configuration and hit `kb(workbench.action.debug.start)` to build and run your container. +1. Select the **Containers: Python – Django** launch configuration and hit `kb(workbench.action.debug.start)` to build and run your container. 1. Modify and save any file. 1. Refresh the browser and validate changes have been made. @@ -223,7 +223,7 @@ When you select **Docker: Add Docker Files to Workspace** for Django or Flask, w } ``` -1. Select the **Docker: Python – Flask** launch configuration and hit `kb(workbench.action.debug.start)` to build and run your container. +1. Select the **Containers: Python – Flask** launch configuration and hit `kb(workbench.action.debug.start)` to build and run your container. 1. Modify and save any file. 1. Refresh the browser and validate changes have been made. @@ -253,7 +253,7 @@ When you select **Docker: Add Docker Files to Workspace** for Django or Flask, w 1. The `dockerBuild` object in the JSON allows for the following parameters: - - context: The docker build context, from which your Dockerfile is called + - context: The build context, from which your Dockerfile is called - dockerfile: The path to the Dockerfile to execute - tag: The name of the image to be built, with its version tag diff --git a/docs/containers/docker-compose.md b/docs/containers/docker-compose.md index 05602b8811..6ae66d60f9 100644 --- a/docs/containers/docker-compose.md +++ b/docs/containers/docker-compose.md @@ -5,7 +5,7 @@ TOCTitle: Docker Compose ContentId: c63d86a0-48f8-4724-ba24-fa5ce4199632 PageTitle: Use Docker Compose to work with multiple containers DateApproved: 12/21/2022 -MetaDescription: Develop a multi-container app running in a Docker containers using Docker Compose and Visual Studio Code. +MetaDescription: Develop a multi-container app running in containers using Docker Compose and Visual Studio Code. --- # Use Docker Compose @@ -13,19 +13,19 @@ Docker Compose provides a way to orchestrate multiple containers that work toget Also, for single-container scenarios, using Docker Compose provides tool-independent configuration in a way that a single Dockerfile does not. Configuration settings such as volume mounts for the container, port mappings, and environment variables can be declared in the docker-compose YML files. -To use Docker Compose in VS Code using the Docker extension, you should already be familiar with the basics of [Docker Compose](https://docs.docker.com/compose/). +To use Docker Compose in VS Code using the Container Tools extension, you should already be familiar with the basics of [Docker Compose](https://docs.docker.com/compose/). ## Adding Docker Compose support to your project -If you already have one or more Dockerfiles, you can add Docker Compose files by opening the **Command Palette** (`kb(workbench.action.showCommands)`), and using the **Docker: Add Docker Compose Files to Workspace** command. Follow the prompts. +If you already have one or more Dockerfiles, you can add Docker Compose files by opening the **Command Palette** (`kb(workbench.action.showCommands)`), and using the **Containers: Add Docker Compose Files to Workspace** command. Follow the prompts. -You can add Docker Compose files to your workspace at the same time you add a Dockerfile by opening the **Command Palette** (`kb(workbench.action.showCommands)`) and using the **Docker: Add Docker Files to Workspace** command. You'll be asked if you want to add Docker Compose files. If you want to keep your existing Dockerfile, choose **No** when prompted to overwrite the Dockerfile. +You can add Docker Compose files to your workspace at the same time you add a Dockerfile by opening the **Command Palette** (`kb(workbench.action.showCommands)`) and using the **Containers: Add Docker Files to Workspace** command. You'll be asked if you want to add Docker Compose files. If you want to keep your existing Dockerfile, choose **No** when prompted to overwrite the Dockerfile. -The Docker extension adds the `docker-compose.yml` file to your workspace. This file contains the configuration to bring up the containers as expected in production. In some cases, a `docker-compose.debug.yml` is also generated. This file provides a simplified mode for starting that enables the debugger. +The Container Tools extension adds the `docker-compose.yml` file to your workspace. This file contains the configuration to bring up the containers as expected in production. In some cases, a `docker-compose.debug.yml` is also generated. This file provides a simplified mode for starting that enables the debugger. ![Screenshot of project with docker-compose files](images/compose/docker-compose-files.png) -The VS Code Docker extension generates files that work out of the box, but you can also customize them to optimize for your scenario. You can then use the **Docker Compose Up** command (right-click on the `docker-compose.yml` file, or find the command in the **Command Palette**) to get everything started at once. You can also use the `docker-compose up` command from the command prompt or terminal window in VS Code to start the containers. Refer to the [Docker Compose documentation](https://docs.docker.com/compose/reference/up) about how to configure the Docker Compose behavior and what command-line options are available. +The VS Code Container Tools extension generates files that work out of the box, but you can also customize them to optimize for your scenario. You can then use the **Containers: Compose Up** command (right-click on the `docker-compose.yml` file, or find the command in the **Command Palette**) to get everything started at once. You can also use the `docker-compose up` command from the command prompt or terminal window in VS Code to start the containers. Refer to the [Docker Compose documentation](https://docs.docker.com/compose/reference/up) about how to configure the Docker Compose behavior and what command-line options are available. With the docker-compose files, you can now specify port mappings in the docker-compose files, rather than in the .json configuration files. For examples, see the [Docker Compose documentation](https://docs.docker.com/compose/compose-file/#ports). @@ -33,9 +33,9 @@ With the docker-compose files, you can now specify port mappings in the docker-c ## Add new containers to your projects -If you want to add another app or service, you can run **Add Docker Compose Files to Workspace** again, and choose to overwrite the existing docker-compose files, but you'll lose any customization in those files. If you want to preserve changes to the compose files, you can manually modify the `docker-compose.yml` file to add the new service. Typically, you can copy the existing service section, paste it to create a new entry, and change the names as appropriate for the new service. +If you want to add another app or service, you can run **Containers: Add Docker Compose Files to Workspace** again, and choose to overwrite the existing docker-compose files, but you'll lose any customization in those files. If you want to preserve changes to the compose files, you can manually modify the `docker-compose.yml` file to add the new service. Typically, you can copy the existing service section, paste it to create a new entry, and change the names as appropriate for the new service. -You can run the **Add Docker Files to Workspace** command again to generate the `Dockerfile` for a new app. While each app or service has its own Dockerfile, there's typically one `docker-compose.yml` and one `docker-compose.debug.yml` file per workspace. +You can run the **Containers: Add Docker Files to Workspace** command again to generate the `Dockerfile` for a new app. While each app or service has its own Dockerfile, there's typically one `docker-compose.yml` and one `docker-compose.debug.yml` file per workspace. In Python projects, you have the `Dockerfile`, `.dockerignore`, `docker-compose*.yml` files all in the root folder of the workspace. When you add another app or service, move the Dockerfile into the app's folder. @@ -48,16 +48,16 @@ For .NET, the folder structure is already set up to handle multiple projects whe First, refer to the debugging documentation for your target platform, to understand the basics on debugging in containers with VS Code: - [Node.js debugging](/docs/containers/debug-node.md) -- [Python Docker debugging](/docs/containers/debug-python.md) +- [Python Container debugging](/docs/containers/debug-python.md) - [.NET debugging](/docs/containers/debug-netcore.md) -If you want to debug in Docker Compose, run the command **Docker Compose Up** using one of the two Docker Compose files as described in the previous section, and then attach using the appropriate **Attach** launch configuration. Launching directly using the normal launch configuration does not use Docker Compose. +If you want to debug in Docker Compose, run the command **Containers: Compose Up** using one of the two Docker Compose files as described in the previous section, and then attach using the appropriate **Attach** launch configuration. Launching directly using the normal launch configuration does not use Docker Compose. -Create an **Attach** [launch configuration](/docs/debugtest/debugging-configuration.md#launch-configurations). This is a section in `launch.json`. The process is mostly manual, but in some cases, the Docker extension can help by adding a pre-configured launch configuration that you can use as a template and customize. The process for each platform (Node.js, Python, and .NET) is described in the following sections. +Create an **Attach** [launch configuration](/docs/debugtest/debugging-configuration.md#launch-configurations). This is a section in `launch.json`. The process is mostly manual, but in some cases, the Container Tools extension can help by adding a pre-configured launch configuration that you can use as a template and customize. The process for each platform (Node.js, Python, and .NET) is described in the following sections. ### Node.js -1. On the **Debug** tab, choose the **Configuration** dropdown, choose **New Configuration** and select the `Docker Attach` configuration template **Node.js Docker Attach (Preview)**. +1. On the **Debug** tab, choose the **Configuration** dropdown, choose **New Configuration** and select the `Containers: Attach` configuration template **Containers: Attach to Node**. 1. Configure the debugging port in `docker-compose.debug.yml`. This is set when you create the file, so you might not need to change it. In the example below, port 9229 is used for debugging on both the host and the container. @@ -85,7 +85,7 @@ Create an **Attach** [launch configuration](/docs/debugtest/debugging-configurat { "type": "node", "request": "attach", - "name": "Docker: Attach to Node", + "name": "Containers: Attach to Node", "remoteRoot": "/usr/src/app", "port": 9229 // Optional; otherwise inferred from the docker-compose.debug.yml. }, @@ -132,9 +132,9 @@ For debugging Python with Docker Compose, follow these steps: 1. When done editing the **Attach** configuration, save the `launch.json`. Navigate to the **Debug** tab, and select **Python Debugger: Remote Attach** as the active configuration. -1. If you already have a valid Dockerfile, we recommend running the command **Docker: Add Docker Compose Files to Workspace**. This will create a `docker-compose.yml` file and also a `docker-compose.debug.yml`, which volume maps and starts the Python debugger in the container. If you do not have a Dockerfile already, we recommend running **Docker: Add Docker Files to Workspace** and selecting **Yes** to include Docker Compose files. +1. If you already have a valid Dockerfile, we recommend running the command **Containers: Add Docker Compose Files to Workspace**. This will create a `docker-compose.yml` file and also a `docker-compose.debug.yml`, which volume maps and starts the Python debugger in the container. If you do not have a Dockerfile already, we recommend running **Containers: Add Docker Files to Workspace** and selecting **Yes** to include Docker Compose files. - > **Note**: By default, when using **Docker: Add Docker Files to Workspace**, choosing the Django and Flask options will scaffold a Dockerfile configured for Gunicorn. Follow the instructions in the [Python in a container quickstart](/docs/containers/quickstart-python.md#gunicorn-modifications-for-django-and-flask-apps) to ensure it is configured properly before proceeding. + > **Note**: By default, when using **Containers: Add Docker Files to Workspace**, choosing the Django and Flask options will scaffold a Dockerfile configured for Gunicorn. Follow the instructions in the [Python in a container quickstart](/docs/containers/quickstart-python.md#gunicorn-modifications-for-django-and-flask-apps) to ensure it is configured properly before proceeding. 1. Right-click on the `docker-compose.debug.yml` file (example shown below) and choose **Compose Up**. @@ -159,7 +159,7 @@ For debugging Python with Docker Compose, follow these steps: > **Note:** If you would like to import the Python debugger into a specific file, more information can be found in the [debugpy README](https://github.com/microsoft/debugpy#debugpy-import-usage). -1. When you attach to a service that exposes an HTTP endpoint and returns HTML, the web browser may not open automatically. To open the app in the browser, right-click the container in the Docker Explorer and choose **Open in Browser**. If multiple ports are configured, you'll be asked to choose the port. +1. When you attach to a service that exposes an HTTP endpoint and returns HTML, the web browser may not open automatically. To open the app in the browser, right-click the container in the Container Explorer and choose **Open in Browser**. If multiple ports are configured, you'll be asked to choose the port. ![Screenshot - Open in Browser](images/compose/docker-compose-open-in-browser.png) @@ -167,7 +167,7 @@ For debugging Python with Docker Compose, follow these steps: ### .NET -1. On the **Debug** tab, choose the **Configuration** dropdown, choose **New Configuration** and select the `Docker Attach` configuration template **.NET Core Docker Attach (Preview)**. +1. On the **Debug** tab, choose the **Configuration** dropdown, choose **New Configuration** and select the `Container Attach` configuration template **Containers: .NET Attach (Preview)**. 1. VS Code tries to copy `vsdbg` from the host machine to the target container using a default path. You can also provide a path to an existing instance of `vsdbg` in the **Attach** configuration. @@ -207,7 +207,7 @@ If everything is configured correctly, the debugger should be attached to your . ## Volume mounts -By default, the Docker extension does not do any volume mounting for debugging components. There's no need for it in .NET or Node.js, since the required components are built into the runtime. If your app requires volume mounts, specify them by using the `volumes` tag in the `docker-compose*.yml` files. +By default, the Container Tools extension does not do any volume mounting for debugging components. There's no need for it in .NET or Node.js, since the required components are built into the runtime. If your app requires volume mounts, specify them by using the `volumes` tag in the `docker-compose*.yml` files. ```yaml volumes: @@ -216,7 +216,7 @@ volumes: ## Docker Compose with multiple Compose files -Workspaces can have multiple docker-compose files to handle different environments like development, test, and production. The content of the configuration can be split into multiple files. For example, a base compose file that defines the common information for all environments and separate override files that define environment-specific information. When these files are passed as input to the `docker-compose` command, it combines these files into a single configuration. By default, the **Docker: Compose Up** command passes a single file as input to the compose command, but you can customize the `compose up` command to pass in multiple files using [command customization](/docs/containers/reference.md#command-customization). Or, you can use a [custom task](/docs/debugtest/tasks.md#custom-tasks) to invoke the `docker-compose` command with the desired parameters. +Workspaces can have multiple docker-compose files to handle different environments like development, test, and production. The content of the configuration can be split into multiple files. For example, a base compose file that defines the common information for all environments and separate override files that define environment-specific information. When these files are passed as input to the `docker-compose` command, it combines these files into a single configuration. By default, the **Containers: Compose Up** command passes a single file as input to the compose command, but you can customize the `compose up` command to pass in multiple files using [command customization](/docs/containers/reference.md#command-customization). Or, you can use a [custom task](/docs/debugtest/tasks.md#custom-tasks) to invoke the `docker-compose` command with the desired parameters. > **Note**: If your workspace has `docker-compose.yml` and `docker-compose.override.yml` and no other compose files, then the `docker-compose` command is invoked with no input files and it implicitly uses these files. In this case, no customization is needed. @@ -242,7 +242,7 @@ Let's assume your workspace has a base compose file (`docker-compose.yml`) and a Let's assume you have a different set of input files for each environment. You could define multiple templates with regular expression match, and the selected file name will be matched against this `match` property and the corresponding template will be used. ```json -"docker.commands.composeUp": [ +"containers.commands.composeUp": [ { "label": "dev-match", "template": "docker-compose -f docker-compose.yml -f docker-compose.debug.yml -f docker-compose.dev.yml up -d --build", @@ -266,7 +266,7 @@ Let's assume you have a different set of input files for each environment. You c If you omit the `match` property from command templates, you're asked which template to use each time `compose up` command is invoked. For example: ```json -"docker.commands.composeUp": [ +"containers.commands.composeUp": [ { "label": "dev", "template": "docker-compose -f docker-compose.yml -f docker-compose.common.dev.yml ${configurationFile} up -d --build" diff --git a/docs/containers/images/app-service/ACI-deploy.gif b/docs/containers/images/app-service/ACI-deploy.gif deleted file mode 100644 index 600e792e54..0000000000 --- a/docs/containers/images/app-service/ACI-deploy.gif +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e2d4d5ff142172951660fb6d665575a85cbee4663f14342f30be5a7cf60370eb -size 3538328 diff --git a/docs/containers/images/app-service/command-build-image.png b/docs/containers/images/app-service/command-build-image.png index e0a50ef9b5..b3a16ee8b5 100644 --- a/docs/containers/images/app-service/command-build-image.png +++ b/docs/containers/images/app-service/command-build-image.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e0901e020698e4eb654f4d20b9de6d61f372fb41ed6bd7c13be9298ac2f47666 -size 1793 +oid sha256:2e41d9d8db1cbc9b50ca6c54076dd7494b49574197db9b821644101b4cca4a0a +size 8307 diff --git a/docs/containers/images/app-service/deploy-aci-containers-pane.png b/docs/containers/images/app-service/deploy-aci-containers-pane.png deleted file mode 100644 index c4b81bd501..0000000000 --- a/docs/containers/images/app-service/deploy-aci-containers-pane.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c5951c8429bea1fa1538b3846035a5ba121fb5b2a2225453308235513bf3afb1 -size 10637 diff --git a/docs/containers/images/app-service/deploy-aci-contexts.png b/docs/containers/images/app-service/deploy-aci-contexts.png deleted file mode 100644 index b4efdaecc4..0000000000 --- a/docs/containers/images/app-service/deploy-aci-contexts.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ad66d7f43b233aadf60c3dc8d54824644073bbb346382a5c6d50346af567a895 -size 3316 diff --git a/docs/containers/images/app-service/deploy-aci-menu.png b/docs/containers/images/app-service/deploy-aci-menu.png deleted file mode 100644 index 13292175f7..0000000000 --- a/docs/containers/images/app-service/deploy-aci-menu.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a719276a6bcb81c0d27c8cd5f8b3eb431a67a4201d09e75775950f57e6971ba1 -size 23658 diff --git a/docs/containers/images/app-service/deploy-image-to-azure-app-service.png b/docs/containers/images/app-service/deploy-image-to-azure-app-service.png deleted file mode 100644 index 72baae26e0..0000000000 --- a/docs/containers/images/app-service/deploy-image-to-azure-app-service.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0f3b97fe0b29fed58e16fc40f566ab18b8f50caca758ed8af53046aaa6c2c939 -size 65107 diff --git a/docs/containers/images/app-service/explorer-connect-registry.png b/docs/containers/images/app-service/explorer-connect-registry.png index 0ee2e1feed..1a74a0294e 100644 --- a/docs/containers/images/app-service/explorer-connect-registry.png +++ b/docs/containers/images/app-service/explorer-connect-registry.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8bbc1ddfaf909d4216568d93b0b92a813b61cbb384c99271e502e7c7de5ae52c -size 3909 +oid sha256:0b23850a33e89b2aba6b945028619b76fd1d30271214c594b8a7943a9efeefb7 +size 14443 diff --git a/docs/containers/images/app-service/explorer-deploy-to-app-service.png b/docs/containers/images/app-service/explorer-deploy-to-app-service.png index b4667a035f..c05c873568 100644 --- a/docs/containers/images/app-service/explorer-deploy-to-app-service.png +++ b/docs/containers/images/app-service/explorer-deploy-to-app-service.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3184ace21801843483a481481184c19a5c01608a54d255ae5cb6817548f5381e -size 8264 +oid sha256:df6a24290e6c63e945174f441953b76b26f9cb81ff4e6ba0f90c638092061623 +size 41525 diff --git a/docs/containers/images/app-service/explorer-push-image.png b/docs/containers/images/app-service/explorer-push-image.png index 3fed43a698..5ecd7dabd5 100644 --- a/docs/containers/images/app-service/explorer-push-image.png +++ b/docs/containers/images/app-service/explorer-push-image.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ceffffe3a844cc4691bdbd839127cebe5450dfc53ccdd889a9783363b03ea347 -size 52559 +oid sha256:91b173a19136c2d1a24d94430945ffaac9f774e375d14d9b2a0613def5f94aff +size 44401 diff --git a/docs/containers/images/app-service/explorer-refresh-registry.png b/docs/containers/images/app-service/explorer-refresh-registry.png index 2e3acc0815..652cb1a81a 100644 --- a/docs/containers/images/app-service/explorer-refresh-registry.png +++ b/docs/containers/images/app-service/explorer-refresh-registry.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7d5ef005537f114eac262376fccd972e2a37ada8f0a7206040ad724bf3ffd13e -size 35919 +oid sha256:38d02bfe51ef1fd1ba54bbf9ca6603c2a932e4eb434be0e94962913b7b747d23 +size 15331 diff --git a/docs/containers/images/app-service/explorer-registries.png b/docs/containers/images/app-service/explorer-registries.png index 4ab0380bfc..9bb3f07917 100644 --- a/docs/containers/images/app-service/explorer-registries.png +++ b/docs/containers/images/app-service/explorer-registries.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a4fd988b2b3356cfde6c55a9912b52ae1afc93558daf0aaa8ab225fea8ca2cc0 -size 30413 +oid sha256:4757c2db771559b2ca5fc88a576ff468502d9470a6eec5113fadabd0d9c12209 +size 12199 diff --git a/docs/containers/images/app-service/explorer-tag-image.png b/docs/containers/images/app-service/explorer-tag-image.png index 2446c7dca9..f81a4b8aab 100644 --- a/docs/containers/images/app-service/explorer-tag-image.png +++ b/docs/containers/images/app-service/explorer-tag-image.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:47f3c7a9a809643d32d3ebff22e93afc79d8724c24f8be413314db8980947fef -size 67993 +oid sha256:3a2d8c838b4851601e3474c6caf016b762524397b8e234486bc858424d7f06f6 +size 39401 diff --git a/docs/containers/images/app-service/notification-appservice-deployment.png b/docs/containers/images/app-service/notification-appservice-deployment.png index 4aaf84c9fc..0bf00fa6fd 100644 --- a/docs/containers/images/app-service/notification-appservice-deployment.png +++ b/docs/containers/images/app-service/notification-appservice-deployment.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:92a2dca96c5bb8b8273fec7d85c1faa8b990fb6c03d5b2f7e56637ef180d4493 -size 2887 +oid sha256:59e8f2b5178ccdcd0a514ac037a101abfd968421d93b6c1b48506f5b02d9bc4e +size 12994 diff --git a/docs/containers/images/app-service/output-appservice-deployment.png b/docs/containers/images/app-service/output-appservice-deployment.png index 14e8a4a188..96b0c764a2 100644 --- a/docs/containers/images/app-service/output-appservice-deployment.png +++ b/docs/containers/images/app-service/output-appservice-deployment.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:83bd9b8645683cf973a61a3ed74c813b03771c8489aeb21cab4842abb92e8a26 -size 10624 +oid sha256:9362368f7c75f2ac0fb8297a842a51404ec049fbe7bc846a98d8091b976103e0 +size 78035 diff --git a/docs/containers/images/compose/docker-compose-attach.png b/docs/containers/images/compose/docker-compose-attach.png index ff3de06d7a..509be1eaf2 100644 --- a/docs/containers/images/compose/docker-compose-attach.png +++ b/docs/containers/images/compose/docker-compose-attach.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cd30cb27c04d310157ff17d7e7cd49ebcb01c77eceeb16c4d03b55419aed6f72 -size 11341 +oid sha256:023c98bd490dc4c07df5ed157f68da73755dfc74113d047d4a2df402dbbac875 +size 17175 diff --git a/docs/containers/images/compose/docker-compose-configuration.png b/docs/containers/images/compose/docker-compose-configuration.png index b50cf6270c..40384d7351 100644 --- a/docs/containers/images/compose/docker-compose-configuration.png +++ b/docs/containers/images/compose/docker-compose-configuration.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fd0a33ac143030b3888b761abf18d2988ffda0be9acbea5ccf72b15ccf052700 -size 9827 +oid sha256:b67e167647c5f3c09bf0efe06ad3c1b9fcd379fc3101f0f86fec82e003d37339 +size 22392 diff --git a/docs/containers/images/compose/docker-compose-netcore-debugger-prompt.png b/docs/containers/images/compose/docker-compose-netcore-debugger-prompt.png index 9c43b87e21..61aa488dd9 100644 --- a/docs/containers/images/compose/docker-compose-netcore-debugger-prompt.png +++ b/docs/containers/images/compose/docker-compose-netcore-debugger-prompt.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e6075904a07fcafced0a118182332f7371812da5a53a9fb1b2a66da9a2d7aa9e -size 5326 +oid sha256:f063f5bca5a2edef45c350ad9e134b7a7ee61ceb6674cc6c560dfb3464cc67b4 +size 13192 diff --git a/docs/containers/images/compose/docker-compose-open-in-browser.png b/docs/containers/images/compose/docker-compose-open-in-browser.png index 3fba03210f..0bc496d544 100644 --- a/docs/containers/images/compose/docker-compose-open-in-browser.png +++ b/docs/containers/images/compose/docker-compose-open-in-browser.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:319f1baf4361bbe658d875f53dd3f2a78ba0ac67639a8080f56097209b1a63bc -size 18302 +oid sha256:39fba5702f5b8162715cb08280062784474a55795847202e0ed5a4e856fa3204 +size 53295 diff --git a/docs/containers/images/compose/docker-compose-python-debug.png b/docs/containers/images/compose/docker-compose-python-debug.png index 6062d3035b..22cfab9722 100644 --- a/docs/containers/images/compose/docker-compose-python-debug.png +++ b/docs/containers/images/compose/docker-compose-python-debug.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a151c6059145990304f5223e0a7df58678c17d601b0b780a01689c1cf7f73a51 -size 55571 +oid sha256:711483bb23bed41dcd9990a81f1c2bacf076f7efe7b63a4a6e638083fc5b5fc1 +size 93835 diff --git a/docs/containers/images/compose/docker-compose-python-remote-attach.png b/docs/containers/images/compose/docker-compose-python-remote-attach.png index 7ebd9bbdcf..312aeff7ae 100644 --- a/docs/containers/images/compose/docker-compose-python-remote-attach.png +++ b/docs/containers/images/compose/docker-compose-python-remote-attach.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7e573fd9bb04cc21f26e10ee6c0e7dfd536401356e8b48d45ecd637f52699f6e -size 167383 +oid sha256:ec3ffe9d3853414b632467922fcddbf70dba3fd2d6b58c73f63d3d23fbb3c923 +size 42646 diff --git a/docs/containers/images/compose/docker-node-launch.png b/docs/containers/images/compose/docker-node-launch.png deleted file mode 100644 index acb954ea75..0000000000 --- a/docs/containers/images/compose/docker-node-launch.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8db1b7fa1e6969d08444bc2c5a448c852d6a12f55d608ab808bfbdabf27d6cc4 -size 25422 diff --git a/docs/containers/images/compose/select-container-group.png b/docs/containers/images/compose/select-container-group.png deleted file mode 100644 index b9aa7bcd40..0000000000 --- a/docs/containers/images/compose/select-container-group.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5e90ff58e14347391d7776961c0fddada5ab06be735fb556c13fa287b1e34307 -size 3057 diff --git a/docs/containers/images/devenv/install-in-ssh.png b/docs/containers/images/devenv/install-in-ssh.png index f839100f90..dd7901d595 100644 --- a/docs/containers/images/devenv/install-in-ssh.png +++ b/docs/containers/images/devenv/install-in-ssh.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8c176634e5d0e51c7a2289c4ea1be915ca0f085a48eb3d336a477dbd8bf4b14e -size 13854 +oid sha256:3f22893360d00e8e1a56c366367c3170f9652eeb3e98eff3ce4d082c188970e9 +size 65034 diff --git a/docs/containers/images/overview/command-palette.png b/docs/containers/images/overview/command-palette.png index cea49c99e8..32d17e19e7 100644 --- a/docs/containers/images/overview/command-palette.png +++ b/docs/containers/images/overview/command-palette.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3fc0e3c34e080c10b2ec0c48f5d0966a4dd5ee5c880934ba20d1a796d24795c8 -size 30270 +oid sha256:2b89510a68bafd494a92add1e61e0f1f6916c7181b287202fb0ad65b3d9d4ead +size 49585 diff --git a/docs/containers/images/overview/compose-group.png b/docs/containers/images/overview/compose-group.png index 01f2566e2f..9e0c0c31b0 100644 --- a/docs/containers/images/overview/compose-group.png +++ b/docs/containers/images/overview/compose-group.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c8a0a60b2bc18823ad885d1c9d386fe7c69ee6c0f77f7b6c4642f7fccefa5fbf -size 130823 +oid sha256:bacea97eef016fb3bc483cb78102205916880d29947e6e319d41e9ea7d4931c1 +size 18109 diff --git a/docs/containers/images/overview/container-registry.png b/docs/containers/images/overview/container-registry.png index 7c5f7b83ea..4407a72303 100644 --- a/docs/containers/images/overview/container-registry.png +++ b/docs/containers/images/overview/container-registry.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:37843ac568702d32b743ffd30f52892c918dd692d2af8cb3470b99553ec86102 -size 109473 +oid sha256:19dc0fc89e49c392c2883481ddc8bd4bf9e6c61a7c04bcff4f6d83ef03d20ef0 +size 46889 diff --git a/docs/containers/images/overview/docker-view-context-menu.gif b/docs/containers/images/overview/docker-view-context-menu.gif index 7001e1d942..d616de5638 100644 --- a/docs/containers/images/overview/docker-view-context-menu.gif +++ b/docs/containers/images/overview/docker-view-context-menu.gif @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f8ebc91d1f5e24962a8091152a9feef828da9dbba9e78bd75fa33c65aa259c5a -size 61145 +oid sha256:136e41f36ad0c4166a37311187646482f15fb61d35a165657ce9a58307602ca6 +size 218528 diff --git a/docs/containers/images/overview/docker-view-rearrange.gif b/docs/containers/images/overview/docker-view-rearrange.gif index d0ef6c2284..6fdc80dc2a 100644 --- a/docs/containers/images/overview/docker-view-rearrange.gif +++ b/docs/containers/images/overview/docker-view-rearrange.gif @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4805b0048e13f9dc890c50ad326a475f7da3b5b694de5eba61a6e1297496bfd9 -size 100518 +oid sha256:2912e7b2b6123c154586d9d9071a845558ac6af948caf5a71fd4a1f17ceeb9a6 +size 362516 diff --git a/docs/containers/images/overview/dockercomposeimageintellisense.png b/docs/containers/images/overview/dockercomposeimageintellisense.png deleted file mode 100644 index b362980cd3..0000000000 --- a/docs/containers/images/overview/dockercomposeimageintellisense.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5ed557c3ea6789f22bff53303a4b3ddae41aac5b557466450892706f03fc5118 -size 9622 diff --git a/docs/containers/images/overview/dockercomposeintellisense.png b/docs/containers/images/overview/dockercomposeintellisense.png deleted file mode 100644 index 9958ba1bb5..0000000000 --- a/docs/containers/images/overview/dockercomposeintellisense.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9d6ef95fd882945cd8476b8a2d3665fc705e05feccedacd3c74a12ca3a0f7eb8 -size 7773 diff --git a/docs/containers/images/overview/dockercomposesearch.png b/docs/containers/images/overview/dockercomposesearch.png deleted file mode 100644 index 4e692a4b3d..0000000000 --- a/docs/containers/images/overview/dockercomposesearch.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ba387536a0de1435af89b33578ba85dd267fcb39084164a449852633eac5290b -size 10569 diff --git a/docs/containers/images/overview/installation-extension-search.png b/docs/containers/images/overview/installation-extension-search.png index 2f0452abf9..30f3c936d1 100644 --- a/docs/containers/images/overview/installation-extension-search.png +++ b/docs/containers/images/overview/installation-extension-search.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:967f1b273997fdbc4e0c5f2481284f571159b84b1e2e975e9c1243f6af68e451 -size 107614 +oid sha256:4c63177dc29e7d948caeb4ab8870ea61fe81baa2ea46a80b832bbd0830ca2469 +size 46982 diff --git a/docs/containers/images/quickstarts/aspnetcore-add-dotnet.png b/docs/containers/images/quickstarts/aspnetcore-add-dotnet.png index 29dae3c76d..897d4ad9cb 100644 --- a/docs/containers/images/quickstarts/aspnetcore-add-dotnet.png +++ b/docs/containers/images/quickstarts/aspnetcore-add-dotnet.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:abd4c12424d53bcdfaab3f8df8d4db44bf4288e608d6022aebc44ae1538b2a19 -size 98117 +oid sha256:caf3a14da02630814d14a44a522401aa227a32684c761444ce3442d007ff5f84 +size 62100 diff --git a/docs/containers/images/quickstarts/aspnetcore-debug-configuration.png b/docs/containers/images/quickstarts/aspnetcore-debug-configuration.png index f0b94960b5..59e855cb06 100644 --- a/docs/containers/images/quickstarts/aspnetcore-debug-configuration.png +++ b/docs/containers/images/quickstarts/aspnetcore-debug-configuration.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c6e35f7ec485e4fa8ec30193afd8d1b3434859b6632fe48f42fd23ab4fa64f2e -size 246088 +oid sha256:d8b91f407a1a428852c9a39d02e4cff4fd4b8aba39353895a1e7c02a58633407 +size 48268 diff --git a/docs/containers/images/quickstarts/aspnetcore-running-container.png b/docs/containers/images/quickstarts/aspnetcore-running-container.png index 05753d9654..98ed66f9f8 100644 --- a/docs/containers/images/quickstarts/aspnetcore-running-container.png +++ b/docs/containers/images/quickstarts/aspnetcore-running-container.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:024d446970a2195c782d93f0f04a5e6d2168636b6469de9a050fcf319d1f2bd6 -size 22716 +oid sha256:1f0a9aa46b337a491c8158b9fd8cab1343d37c924135d03277e312b5916a7a3a +size 10187 diff --git a/docs/containers/images/quickstarts/aspnetcore-verify-image.png b/docs/containers/images/quickstarts/aspnetcore-verify-image.png index a812274742..91302e8534 100644 --- a/docs/containers/images/quickstarts/aspnetcore-verify-image.png +++ b/docs/containers/images/quickstarts/aspnetcore-verify-image.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6687632a21c0c1bb0452cfcff6c38f7d4b0afa0b2b5bd701dd431e6f50ab3f79 -size 34950 +oid sha256:9f9d1117cd1f5f0180e8ce424293e7c1049568b666dab17bc9eb561fa1a5472c +size 18920 diff --git a/docs/containers/images/quickstarts/deploy-image-to-azure-python.png b/docs/containers/images/quickstarts/deploy-image-to-azure-python.png index c6411aeb76..76c9344302 100644 --- a/docs/containers/images/quickstarts/deploy-image-to-azure-python.png +++ b/docs/containers/images/quickstarts/deploy-image-to-azure-python.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ef47d8bd8dd30502ba4d7c5143606db13bd9ae09ce9e6bdd1aedc40ceb0be895 -size 68044 +oid sha256:0407b42e3fbf0b83d33c5d307722d47b5bd735b5af775c7846b622d4f1e08a04 +size 37808 diff --git a/docs/containers/images/quickstarts/node-add-node-dark.png b/docs/containers/images/quickstarts/node-add-node-dark.png index 61fbb430eb..d78bf472fd 100644 --- a/docs/containers/images/quickstarts/node-add-node-dark.png +++ b/docs/containers/images/quickstarts/node-add-node-dark.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c36926683126764f13944d3f2f5ddf957323c3ccbca7027819b950f82a3e4948 -size 14228 +oid sha256:f1911237484a5619370d919a2b210061aece2a22b4b8d9999d948d2b5acfb1a4 +size 48211 diff --git a/docs/containers/images/quickstarts/node-debug-configuration-dark.png b/docs/containers/images/quickstarts/node-debug-configuration-dark.png index a5ec420960..c4ff3e0b5c 100644 --- a/docs/containers/images/quickstarts/node-debug-configuration-dark.png +++ b/docs/containers/images/quickstarts/node-debug-configuration-dark.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f66e3bab7cd292c65e33c26ec7c42e1c047bf62fc0f05a9405f3adb6c9dea19f -size 23203 +oid sha256:9a8b0be70b9746f976033e22c6f76a4503153b27e666d51b28340b3be3455a9c +size 57020 diff --git a/docs/containers/images/quickstarts/node-running-container-dark.png b/docs/containers/images/quickstarts/node-running-container-dark.png index 15f3f290eb..d0f17a3989 100644 --- a/docs/containers/images/quickstarts/node-running-container-dark.png +++ b/docs/containers/images/quickstarts/node-running-container-dark.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a30e3c29b60db793b7476fcfb702cf1b9458a83b6ca2380aba8b1ae0d15d30b7 -size 3766 +oid sha256:122fc716e51a7c1b6cb4975ef2d46790ad271538c7e8f6c0206c7fced3986059 +size 13718 diff --git a/docs/containers/images/quickstarts/node-verify-image-dark.png b/docs/containers/images/quickstarts/node-verify-image-dark.png index 2deecbaf95..68cd37fd69 100644 --- a/docs/containers/images/quickstarts/node-verify-image-dark.png +++ b/docs/containers/images/quickstarts/node-verify-image-dark.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:87ef0cb8331dc1e7038f9565735e7f346d29eed9fd49cea84104bdf7553da95a -size 8643 +oid sha256:e41ba92347a0690311927e45d4e6e52a26c3aa832b3fed21a798ef7d12c221cd +size 21802 diff --git a/docs/containers/images/quickstarts/python-add-python.png b/docs/containers/images/quickstarts/python-add-python.png index cf6f602c64..66656ab2aa 100644 --- a/docs/containers/images/quickstarts/python-add-python.png +++ b/docs/containers/images/quickstarts/python-add-python.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f572dd467687f5b27bba98a95361354d375dfdd4a598508fba89d6f6bf9bd864 -size 8166 +oid sha256:0398f89d1a15667dfcdd938c2e9d9016a319c464152ec6c8f4a53f11640a8b62 +size 32058 diff --git a/docs/containers/images/quickstarts/python-debug-configuration.png b/docs/containers/images/quickstarts/python-debug-configuration.png index 6658066594..ac02f23dbc 100644 --- a/docs/containers/images/quickstarts/python-debug-configuration.png +++ b/docs/containers/images/quickstarts/python-debug-configuration.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:811455dcd153de91e153ed2a396b97ed4e8c40d1672d5a7596129fed767e0c04 -size 21769 +oid sha256:4bf42f9d862890dc0cf009b9bcaf6440ce74be36b2c457e09c86998e0b3c5699 +size 76437 diff --git a/docs/containers/images/quickstarts/python-django-image-in-acr.png b/docs/containers/images/quickstarts/python-django-image-in-acr.png index aebc9d2f11..ea26a6f350 100644 --- a/docs/containers/images/quickstarts/python-django-image-in-acr.png +++ b/docs/containers/images/quickstarts/python-django-image-in-acr.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cef3f4c65a97a2b915d5109652db655f24d5da28e90ecb3013845ee370ac0c78 -size 6583 +oid sha256:fb69d35e4e809c1e2d31ebc09e9979e3b57f0fc124c7d7137a1c41d34438763f +size 21300 diff --git a/docs/containers/images/quickstarts/python-django-registries.png b/docs/containers/images/quickstarts/python-django-registries.png index 999568939e..3a87d177c7 100644 --- a/docs/containers/images/quickstarts/python-django-registries.png +++ b/docs/containers/images/quickstarts/python-django-registries.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1cbb32e6e1a9dd8ace184f14195cd9301fb43b6b5a32b876440a32c49be56440 -size 4426 +oid sha256:d5f649b79337d985a6721af27267094f1fbcbf9b703add749975a9d91e44fd0e +size 21292 diff --git a/docs/containers/images/quickstarts/python-edit-dockerfile.png b/docs/containers/images/quickstarts/python-edit-dockerfile.png index 0771285eb9..e633f627ab 100644 --- a/docs/containers/images/quickstarts/python-edit-dockerfile.png +++ b/docs/containers/images/quickstarts/python-edit-dockerfile.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:aa44e73b9a62850043fc400f8872696494b9b17d1cc6bee3e3ff6fc3323f38fd -size 30979 +oid sha256:4ca4bc41e7ec18296741db5d080f1cabc80397e819e23ca7e3b2dd9a8be69231 +size 95539 diff --git a/docs/containers/images/quickstarts/python-view-logs.png b/docs/containers/images/quickstarts/python-view-logs.png index 018209390b..ec76d7c54b 100644 --- a/docs/containers/images/quickstarts/python-view-logs.png +++ b/docs/containers/images/quickstarts/python-view-logs.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c59721061989c40e384cd77b755c19dba28f6667db433056ccdc8ae9c556aa1e -size 35508 +oid sha256:652e2f274cfaa4b1bd67b6f145ca8817ff0487abf1e4e133673937234d71ec38 +size 27408 diff --git a/docs/containers/images/registries/azure-registries.png b/docs/containers/images/registries/azure-registries.png index 7b6be22dd8..34bbc6b014 100644 --- a/docs/containers/images/registries/azure-registries.png +++ b/docs/containers/images/registries/azure-registries.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:54254cab30e3ab58ff050df2d28eae2306f46c55bbeb2cf352cd7fb1f951a87b -size 3389 +oid sha256:a430e73f598ee6667eaa085df64f1abc64ca468aac154c3f12ab32b97700a92d +size 10277 diff --git a/docs/containers/images/registries/connect-registry-2.png b/docs/containers/images/registries/connect-registry-2.png index 9b735e4533..a2ad11ad79 100644 --- a/docs/containers/images/registries/connect-registry-2.png +++ b/docs/containers/images/registries/connect-registry-2.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c39877a687a4debeefda6d10b6343b388e17a8522a0b46d6d645840514a1422d -size 27862 +oid sha256:426aa05c8b941d83746d1966cb91c9452b4aed98421087af4ee0a57f49480028 +size 15193 diff --git a/docs/containers/images/registries/docker-hub.png b/docs/containers/images/registries/docker-hub.png index ab3815360a..57873cf74d 100644 --- a/docs/containers/images/registries/docker-hub.png +++ b/docs/containers/images/registries/docker-hub.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8f15061157915948fb5737770fc985e45c692443e821a9b8685789f010aa7b8c -size 3269 +oid sha256:713fd6512bf6262ab68202e573edf3f6944ac98f6776a8deba7b486d4a849061 +size 17693 diff --git a/docs/containers/images/registries/explorer-push-image.png b/docs/containers/images/registries/explorer-push-image.png index f211c2db5d..3092dadaf7 100644 --- a/docs/containers/images/registries/explorer-push-image.png +++ b/docs/containers/images/registries/explorer-push-image.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7314042833fa60337694f077f743c8fb2c8e44c08beda42739906bba59c70e01 -size 31372 +oid sha256:954164c79eead7deec5fe123d04ad1c40b19d9179ef3fed5b037bca13807abb8 +size 48103 diff --git a/docs/containers/images/registries/explorer-refresh-registry.png b/docs/containers/images/registries/explorer-refresh-registry.png index d486fbbe6e..8ba18b39fb 100644 --- a/docs/containers/images/registries/explorer-refresh-registry.png +++ b/docs/containers/images/registries/explorer-refresh-registry.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e31583714214dff16fa0beb21f4e54295da1904f3f34b24d9f3feb7ad055da8e -size 26201 +oid sha256:be7f56f0176bf5e3ff04073fa84b4340ccd9027d67e76ba8d93e5b56eed94b18 +size 21661 diff --git a/docs/containers/images/registries/explorer-registries.png b/docs/containers/images/registries/explorer-registries.png index 1b55cc388b..5189698c66 100644 --- a/docs/containers/images/registries/explorer-registries.png +++ b/docs/containers/images/registries/explorer-registries.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d7067846725ddd0bf8193acd9459f83179657824f46f310472c20ce00ae3bfbc -size 21819 +oid sha256:3d86609bdf89f4a7111ad6e5d42259136c9889468d2e29e62498c032a7bde330 +size 17844 diff --git a/docs/containers/images/registries/explorer-tag-image.png b/docs/containers/images/registries/explorer-tag-image.png index f094935f17..8b799a149a 100644 --- a/docs/containers/images/registries/explorer-tag-image.png +++ b/docs/containers/images/registries/explorer-tag-image.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1ed32a1bc735ac83958f8b5713a8d46dcd7b6591e1f4ce4e8113c347e905a1a5 -size 33606 +oid sha256:a13d8d9cea528eadde32a1f345efc247a7e506938b972b5cacb053e9d4aa6159 +size 35922 diff --git a/docs/containers/overview.md b/docs/containers/overview.md index 072890facc..458c341fb9 100644 --- a/docs/containers/overview.md +++ b/docs/containers/overview.md @@ -3,15 +3,15 @@ Order: 1 Area: containers TOCTitle: Overview ContentId: 4B462667-8915-4BE0-B8D0-EDE51CB2D273 -PageTitle: Docker extension for Visual Studio Code +PageTitle: Container Tools extension for Visual Studio Code DateApproved: 12/1/2023 -MetaDescription: Tools for developing and debugging with Docker containers, using Visual Studio Code. +MetaDescription: Tools for developing and debugging with containers, using Visual Studio Code. --- -# Docker in Visual Studio Code +# Containers in Visual Studio Code -The [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) extension makes it easy to build, manage, and deploy containerized applications in Visual Studio Code. +The [Container Tools](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) 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](https://learn.microsoft.com/visualstudio/docker/tutorials/docker-tutorial) first to understand key Docker concepts. +This page provides an overview of the Container Tools extension capabilities; use the side menu to learn more about topics of interest. If you are just getting started with container development, try the [Docker tutorial](https://learn.microsoft.com/visualstudio/docker/tutorials/docker-tutorial) first to understand key Docker concepts. ## Installation @@ -19,9 +19,9 @@ This page provides an overview of the Docker extension capabilities; use the sid On Linux, you should also [enable Docker CLI for the non-root user account](https://docs.docker.com/install/linux/linux-postinstall/#manage-docker-as-a-non-root-user) that will be used to run VS Code. -To install the extension, open the Extensions view (`kb(workbench.view.extensions)`), search for `docker` to filter results and select Docker extension authored by Microsoft. +To install the extension, open the Extensions view (`kb(workbench.view.extensions)`), search for `container tools` to filter results and select the Container Tools extension authored by Microsoft. -![Select Docker extension](images/overview/installation-extension-search.png) +![Select Container Tools extension](images/overview/installation-extension-search.png) ## Editing Docker files @@ -33,33 +33,33 @@ In addition, you can use the Problems panel (`kb(workbench.actions.view.problems ## Generating Docker files -You can add Docker files to your workspace by opening the Command Palette (`kb(workbench.action.showCommands)`) 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. +You can add Docker files to your workspace by opening the Command Palette (`kb(workbench.action.showCommands)`) and using **Containers: 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. The extension can scaffold Docker files for most popular development languages (C#, Node.js, Python, Ruby, Go, and Java) and customizes the generated Docker files accordingly. When these files are created, we also create the necessary artifacts to provide debugging support for Node.js, Python, and .NET (C#). -## Docker Explorer +## Container 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 you are signed in to your Microsoft account and it has access to Azure subscriptions, you can browse your Azure Container Registries as well. +The Container Tools extension contributes a Container Explorer view to VS Code. The Container Explorer lets you examine and manage container assets: containers, images, volumes, networks, and container registries. If you are signed in to your Microsoft account and it has access to Azure subscriptions, you can browse your Azure Container Registries as well. The right-click menu provides access to commonly used commands for each type of asset. -![Docker Explorer context menu](images/overview/docker-view-context-menu.gif) +![Container Explorer context menu](images/overview/docker-view-context-menu.gif) -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. +You can rearrange the Container Explorer panes by dragging them up or down with a mouse and use the context menu to hide or show them. -![Customize Docker Explorer](images/overview/docker-view-rearrange.gif) +![Customize Container Explorer](images/overview/docker-view-rearrange.gif) -## Docker commands +## Container commands -Many of the most common Docker commands are built right into the Command Palette: +Many of the most common container-related commands are built right into the Command Palette: -![Docker commands](images/overview/command-palette.png) +![Container commands](images/overview/command-palette.png) -You can run Docker commands to manage [images](https://docs.docker.com/engine/reference/commandline/image/), [networks](https://docs.docker.com/engine/reference/commandline/network/), [volumes](https://docs.docker.com/engine/reference/commandline/volume/), [image registries](https://docs.docker.com/engine/reference/commandline/push/), and [Docker Compose](https://docs.docker.com/compose/reference/overview/). In addition, the **Docker: Prune System** command will remove stopped containers, dangling images, and unused networks and volumes. +You can run commands to manage [images](https://docs.docker.com/engine/reference/commandline/image/), [networks](https://docs.docker.com/engine/reference/commandline/network/), [volumes](https://docs.docker.com/engine/reference/commandline/volume/), [image registries](https://docs.docker.com/engine/reference/commandline/push/), and [Docker Compose](https://docs.docker.com/compose/reference/overview/). In addition, the **Containers: Prune System** command will remove stopped containers, dangling images, and unused networks and volumes. ## Docker Compose -[Docker Compose](https://docs.docker.com/compose/) lets you define and run multi-container applications with Docker. Our [Compose Language Service](https://github.com/microsoft/compose-language-service) in the Docker extension gives you IntelliSense and tab completions when authoring `docker-compose.yml` files. Press `kb(editor.action.triggerSuggest)` to see a list of valid Compose directives. +[Docker Compose](https://docs.docker.com/compose/) lets you define and run multi-container applications with Docker. Our [Compose Language Service](https://github.com/microsoft/compose-language-service) in the Container Tools extension gives you IntelliSense and tab completions when authoring `docker-compose.yml` files. Press `kb(editor.action.triggerSuggest)` to see a list of valid Compose directives. ![Docker Compose IntelliSense](images/overview/tab-completions.gif) @@ -71,7 +71,7 @@ While `Compose Up` allows you to run all of your services at once, our new featu ![Docker Compose Up - Select Subset](images/overview/select-subset.gif) -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. +Once your `Compose Up` command completes, navigate to the Container 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. ![Docker Compose Groups](images/overview/compose-group.png) @@ -85,11 +85,11 @@ An image in an Azure Container Registry can be deployed to Azure App Service or ## Debugging services running inside a container -You can debug services built using .NET (C#) and Node.js that are running inside a container. The extension offers custom tasks that help with launching a service under the debugger and with attaching the debugger to a running service instance. For more information, see [Debug containerized apps](/docs/containers/debug-common.md) and [Customize the Docker extension](/docs/containers/reference.md). +You can debug services built using .NET (C#) and Node.js that are running inside a container. The extension offers custom tasks that help with launching a service under the debugger and with attaching the debugger to a running service instance. For more information, see [Debug containerized apps](/docs/containers/debug-common.md) and [Customize the Container Tools extension](/docs/containers/reference.md). ## 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](https://learn.microsoft.com/cli/azure/get-started-with-azure-cli). +You can start Azure CLI (command-line interface) in a standalone, Linux-based container with **Container 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](https://learn.microsoft.com/cli/azure/get-started-with-azure-cli). ## Next steps diff --git a/docs/containers/quickstart-aspnet-core.md b/docs/containers/quickstart-aspnet-core.md index 21b06088c9..b4c7d214fa 100644 --- a/docs/containers/quickstart-aspnet-core.md +++ b/docs/containers/quickstart-aspnet-core.md @@ -17,7 +17,7 @@ In this guide you will learn how to: ## Prerequisites -- Docker and the VS Code Docker extension must be installed as described on the [overview](/docs/containers/overview.md#installation). +- Docker and the VS Code Container Tools extension must be installed as described on the [overview](/docs/containers/overview.md#installation). - For .NET development, install [.NET SDK](https://dotnet.microsoft.com/download). - Microsoft [C# for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) extension. @@ -34,7 +34,7 @@ In this guide you will learn how to: 1. Open the project folder in VS Code. 1. Wait for the C# extension to prompt you to add required assets for build and debug, and choose **Yes**. You can also open the Command Palette (`kb(workbench.action.showCommands)`) and use the **.NET: Generate Assets for Build and Debug** command. -1. Open Command Palette (`kb(workbench.action.showCommands)`) and use **Docker: Add Docker Files to Workspace...** command: +1. Open Command Palette (`kb(workbench.action.showCommands)`) and use **Containers: Add Docker Files to Workspace...** command: ![Add Dockerfile to a .NET project](images/quickstarts/aspnetcore-add-dotnet.png) @@ -68,28 +68,28 @@ In this guide you will learn how to: ## Add an environment variable to the image -You can use the Docker extension to author Docker files. The extension provides completions and contextual help. To see these capabilities add an environment variable to your service image by following these steps: +You can use the Container Tools extension to author Docker files. The extension provides completions and contextual help. To see these capabilities add an environment variable to your service image by following these steps: 1. Open the `Dockerfile` file. 1. Use `ENV` instruction to add an environment variable to the service container image. The instruction should be placed in the `base` stage of the `Dockerfile` (the first stage in the file). Set the `ASPNETCORE_URLS` variable to `http://*:5000`: ![Add an environment variable to Docker image](images/quickstarts/aspnetcore-intellisense-env.png) - Note how the Docker extension lists all available Dockerfile instructions and describes the syntax. + Note how the Container Tools extension lists all available Dockerfile instructions and describes the syntax. - > The Docker extension uses the `base` stage of the `Dockerfile` to create a debug version of the container image for your service. Put the `ASPNETCORE_URLS` environment variable definition in the `base` stage to have this variable available in both debug and release versions of the container image. + > The Container Tools extension uses the `base` stage of the `Dockerfile` to create a debug version of the container image for your service. Put the `ASPNETCORE_URLS` environment variable definition in the `base` stage to have this variable available in both debug and release versions of the container image. 1. Save the `Dockerfile` file. ## Build the image -1. Open Command Palette (`kb(workbench.action.showCommands)`) and issue **Docker Images: Build Image...** command. -1. Open Docker Explorer and verify that the new image is visible in the Images tree: +1. Open the Command Palette (`kb(workbench.action.showCommands)`) and issue **Container Images: Build Image...** command. +1. Open the Container Explorer and verify that the new image is visible in the Images tree: ![Verify Docker image exists](images/quickstarts/aspnetcore-verify-image.png) ## Test the service container -1. Right-click on the image built in previous step and choose **Run** or **Run Interactive**. The container should start and you should be able to see it in the "Containers" pane of the Docker Explorer: +1. Right-click on the image built in previous step and choose **Run** or **Run Interactive**. The container should start and you should be able to see it in the "Containers" view of the Container Explorer: ![Running service container](images/quickstarts/aspnetcore-running-container.png) @@ -107,7 +107,7 @@ You can use the Docker extension to author Docker files. The extension provides > By default Docker will assign a randomly chosen **host port** to a port exposed by a container (the **container port**). In our application the exposed (container) port is 5000. When you issue **Run** command for an image, VS Code will try to use the same port number for the host port and container port. This makes it easy to remember which port to use to communicate with the container, but it won't work if the host port is already in use. > - > If you cannot see the data from the container in your browser, make sure there are no errors reported by the `docker run` command (look at the command output in the terminal window). You can also verify which host port is using by the container by right-clicking the container in the Docker Explorer and choosing **Inspect**. This will open a JSON document that describes the container in detail. Search for `PortBindings` element, for example: + > If you cannot see the data from the container in your browser, make sure there are no errors reported by the `docker run` command (look at the command output in the terminal window). You can also verify which host port is using by the container by right-clicking the container in the Container Explorer and choosing **Inspect**. This will open a JSON document that describes the container in detail. Search for `PortBindings` element, for example: > > ```jsonc > "PortBindings": { @@ -120,15 +120,15 @@ You can use the Docker extension to author Docker files. The extension provides > }, > ``` -1. When done testing, right-click the container in the Docker Explorer and choose **Stop**. +1. When done testing, right-click the container in the Container Explorer and choose **Stop**. ## Debug in container -When Docker files were added to the application, the Docker extension also added a **VS Code debugger configuration** for debugging the service when it is running inside a container. The extension will automatically detect the protocol and port that the service is using and point the browser to the service, but we need to tell it what URL path to use. +When Docker files were added to the application, the Container Tools extension also added a **VS Code debugger configuration** for debugging the service when it is running inside a container. The extension will automatically detect the protocol and port that the service is using and point the browser to the service, but we need to tell it what URL path to use. 1. Set a breakpoint at the beginning of the code for the `Get()` method of the `Controllers/WeatherForecastController.cs` file. -1. Open `.vscode/launch.json` file and find `Docker .NET Core Launch` debug configuration. -1. Add `dockerServerReadyAction` to `Docker .NET Core Launch` configuration: +1. Open `.vscode/launch.json` file and find `Containers: .NET Core Launch` debug configuration. +1. Add `dockerServerReadyAction` to `Containers: .NET Core Launch` configuration: ```json "dockerServerReadyAction": { diff --git a/docs/containers/quickstart-container-registries.md b/docs/containers/quickstart-container-registries.md index 0c9347a296..fc7f9be709 100644 --- a/docs/containers/quickstart-container-registries.md +++ b/docs/containers/quickstart-container-registries.md @@ -5,13 +5,13 @@ TOCTitle: Registries ContentId: 318A4299-AF24-4ADA-863D-E73B314FC440 PageTitle: Quickstart - Using container registries DateApproved: 12/1/2023 -MetaDescription: Work with Docker container registries in Visual Studio Code +MetaDescription: Work with container registries in Visual Studio Code --- # Using container registries -A container registry is a storage and content delivery system, holding named Docker images, available in different tagged versions. +A container registry is a storage and content delivery system, holding named container images, available in different tagged versions. -Users can connect to Docker registries from the following sources: +Users can connect to container registries from the following sources: - [Azure Container Registry](https://learn.microsoft.com/azure/container-registry) - [Docker Hub](https://hub.docker.com/) @@ -20,9 +20,9 @@ Users can connect to Docker registries from the following sources: ## Push an image to a container registry -Before you can deploy a Docker image, the image must be uploaded to a container registry. The image can be uploaded to [Docker Hub](https://hub.docker.com/), [Azure Container Registry (ACR)](https://learn.microsoft.com/azure/container-registry/container-registry-get-started-portal) or another registry. You can follow the same steps to push the image regardless of whether you're pushing to Docker Hub, Azure Container Registries, or any other registry. If you don't already have an Azure Container Registry, you can create one during the **Push** step. +Before you can deploy a container image, the image must be uploaded to a container registry. The image can be uploaded to [Docker Hub](https://hub.docker.com/), [Azure Container Registry (ACR)](https://learn.microsoft.com/azure/container-registry/container-registry-get-started-portal) or another registry. You can follow the same steps to push the image regardless of whether you're pushing to Docker Hub, Azure Container Registries, or any other registry. If you don't already have an Azure Container Registry, you can create one during the **Push** step. -1. Open the Docker Explorer, select **Connect Registry...** icon under the **Registries** group, and follow the prompt. Choose the provider (for example, Azure or Docker Hub) and provide the credential to connect to the registry. If prompted, install the [Azure Resources](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureresourcegroups) extension. +1. Open the Container Explorer, select **Connect Registry...** icon under the **Registries** view, and follow the prompt. Choose the provider (for example, Azure or Docker Hub) and provide the credential to connect to the registry. If prompted, install the [Azure Resources](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureresourcegroups) extension. ![Connect to Registry](images/registries/connect-registry-2.png) @@ -30,14 +30,14 @@ Before you can deploy a Docker image, the image must be uploaded to a container ![Registries](images/registries/explorer-registries.png) -3. Optionally, tag the image. In order to upload an image to a registry, the image needs to be tagged with registry name so that the docker push will upload it to the right registry. If the image isn't tagged when you try to push it, VS Code asks you what registry you want to associate with the image. - - Images you previously built appear in the Docker Explorer under the **Images** tab. Right-click and choose **Tag...**. +3. Optionally, tag the image. In order to upload an image to a registry, the image needs to be tagged with registry name so that the `docker push` will upload it to the right registry. If the image isn't tagged when you try to push it, VS Code asks you what registry you want to associate with the image. + - Images you previously built appear in the Container Explorer under the **Images** view. Right-click and choose **Tag...**. ![Tag image](images/registries/explorer-tag-image.png) - Specify the new name `/:` and complete the tag action. For example, new image name for ACR would be `mainacr.azurecr.io/webapp6:latest` and for Docker Hub it would be `myusername/webapp6:latest`. -4. The image shows up in the Docker Explorer in the **Images** tab under the registry that the image tag points to. Select this image and choose **Push**. If the image has not yet been tagged, you're prompted to choose a registry to push to, or create a new registry, and the image is tagged based on the selection. +4. The image shows up in the Container Explorer in the **Images** view under the registry that the image tag points to. Select this image and choose **Push**. If the image has not yet been tagged, you're prompted to choose a registry to push to, or create a new registry, and the image is tagged based on the selection. ![Push image](images/registries/explorer-push-image.png) @@ -105,7 +105,7 @@ For each tagged image in a repository, here are the actions that can be performe ## GitHub -This connects to Docker registries in your [GitHub](https://github.com/) account. Once you select this option, you are asked to type in your GitHub account credentials. +This connects to container registries in your [GitHub](https://github.com/) account. Once you select this option, you are asked to type in your GitHub account credentials. ![GitHub](images/registries/github.png) diff --git a/docs/containers/quickstart-node.md b/docs/containers/quickstart-node.md index b0cecb32ed..e215c4e387 100644 --- a/docs/containers/quickstart-node.md +++ b/docs/containers/quickstart-node.md @@ -5,7 +5,7 @@ TOCTitle: Node.js ContentId: A963901F-BF3F-455F-AD75-AB54EAE72BEF PageTitle: Build and run a Node.js app in a container DateApproved: 12/13/2022 -MetaDescription: Develop, build, and debug a Node.js app in a Docker container, using Visual Studio Code. +MetaDescription: Develop, build, and debug a Node.js app in a container, using Visual Studio Code. --- # Node.js in a container @@ -17,7 +17,7 @@ In this guide you will learn how to: ## Prerequisites -- Both Docker and the VS Code Docker extension must be installed as described in the [overview](/docs/containers/overview.md#installation) +- Both Docker and the VS Code Container Tools extension must be installed as described in the [overview](/docs/containers/overview.md#installation) - [Node.js](https://nodejs.org/) version 10 or later ## Create an Express Node.js application @@ -33,7 +33,7 @@ In this guide you will learn how to: ## Add Docker files to the project 1. Open the project folder in VS Code. -1. Open the Command Palette (`kb(workbench.action.showCommands)`) and use **Docker: Add Docker Files to Workspace...** command: +1. Open the Command Palette (`kb(workbench.action.showCommands)`) and use **Containers: Add Docker Files to Workspace...** command: ![Add Dockerfile to a Node.js project](images/quickstarts/node-add-node-dark.png) @@ -46,16 +46,16 @@ The extension creates `Dockerfile` and `.dockerignore` files. If you elected to ## Add an environment variable to the image -The Docker extension helps you author Dockerfiles by using [IntelliSense](/docs/editing/intellisense.md) to provide auto-completions and contextual help. To see this feature in action, add an environment variable to your service image by following these steps: +The Container Tools extension helps you author Dockerfiles by using [IntelliSense](/docs/editing/intellisense.md) to provide auto-completions and contextual help. To see this feature in action, add an environment variable to your service image by following these steps: 1. Open the `Dockerfile` file. 1. Use `ENV` instruction to add an environment variable to the service container image. ![Add an environment variable to Docker image](images/quickstarts/nodejs-intellisense-env.png) - Note how the Docker extension lists all available Dockerfile instructions and describes the syntax. + Note how the Container Tools extension lists all available Dockerfile instructions and describes the syntax. - > The Docker extension uses the `base` stage of the `Dockerfile` to create a debug version of the container image for your service. Put the environment variable definition in the `base` stage to have this variable available in both debug and release versions of the container image. + > The Container Tools extension uses the `base` stage of the `Dockerfile` to create a debug version of the container image for your service. Put the environment variable definition in the `base` stage to have this variable available in both debug and release versions of the container image. 1. Save the `Dockerfile` file. ## Run the service locally @@ -76,14 +76,14 @@ The Docker extension helps you author Dockerfiles by using [IntelliSense](/docs/ ## Build the service image -1. Open the Command Palette (`kb(workbench.action.showCommands)`) and select the **Docker Images: Build Image...** command. -1. Open the Docker Explorer and verify that the new image is visible in the Images tree: +1. Open the Command Palette (`kb(workbench.action.showCommands)`) and select the **Container Images: Build Image...** command. +1. Open the Container Explorer and verify that the new image is visible in the Images view: ![Verify Docker image exists](images/quickstarts/node-verify-image-dark.png) ## Run the service container -1. Right-click on the image built in the previous section and select **Run** or **Run Interactive**. The container should start and you should be able to see it in the Docker Containers tree: +1. Right-click on the image built in the previous section and select **Run** or **Run Interactive**. The container should start and you should be able to see it in the Containers view: ![Running service container](images/quickstarts/node-running-container-dark.png) @@ -91,21 +91,21 @@ The Docker extension helps you author Dockerfiles by using [IntelliSense](/docs/ ![Application page in browser](images/quickstarts/node-run-browser.png) -1. When done testing, right-click the container in the Containers tree and select **Stop**. +1. When done testing, right-click the container in the Containers view and select **Stop**. ## Debug in the service container -When the Docker extension adds files to the application, it also adds a **VS Code debugger configuration** in `.vscode/launch.json` for debugging the service when running inside a container. The extension detects the protocol and port used by the service and points the browser to the service. +When the Container Tools extension adds files to the application, it also adds a **VS Code debugger configuration** in `.vscode/launch.json` for debugging the service when running inside a container. The extension detects the protocol and port used by the service and points the browser to the service. 1. Set a breakpoint in the `get()` handler for the `'/'` route in `routes/index.js`. -1. Make sure the **Docker Node.js Launch** debugger configuration is selected. +1. Make sure the **Containers: Node.js Launch** debugger configuration is selected. - ![Selected Docker debug configuration](images/quickstarts/node-debug-configuration-dark.png) + ![Selected debug configuration](images/quickstarts/node-debug-configuration-dark.png) 1. Start debugging (use the `kb(workbench.action.debug.start)` key). - - The Docker image for the service builds. - - The Docker container for the service runs. + - The image for the service builds. + - The container for the service runs. - The browser opens to the (random) port mapped to the service container. - The debugger stops at the breakpoint in `index.js`. @@ -117,8 +117,8 @@ When the Docker extension adds files to the application, it also adds a **VS Cod You can view the logs in VS Code by using the **View Logs** command on the container: -1. Navigate to the Docker Explorer. -1. In the **Containers** tab, right-click on your container and choose **View Logs**. +1. Navigate to the Container Explorer. +1. In the **Containers** view, right-click on your container and choose **View Logs**. ![Screenshot of logs in the terminal](images/quickstarts/node-view-logs-dark.png) diff --git a/docs/containers/quickstart-python.md b/docs/containers/quickstart-python.md index edc77a1e3e..a05c2837a3 100644 --- a/docs/containers/quickstart-python.md +++ b/docs/containers/quickstart-python.md @@ -5,7 +5,7 @@ TOCTitle: Python ContentId: 3a9bc520-95e2-416e-a0ac-5be02a38c4c3 PageTitle: Build and run a Python app in a container DateApproved: 12/1/2023 -MetaDescription: Develop, build, and debug a Python app in a Docker container, using Visual Studio Code. +MetaDescription: Develop, build, and debug a Python app in a container, using Visual Studio Code. --- # Python in a container @@ -19,9 +19,9 @@ In this tutorial, you will learn how to: - [Install Docker](https://docs.docker.com/install/) on your machine and add it to the system path. - On Linux, you should also [enable Docker CLI for the non-root user account](https://docs.docker.com/install/linux/linux-postinstall/#manage-docker-as-a-non-root-user) that will be used to run VS Code. -- The Docker extension. To install the extension, open the Extensions view (`kb(workbench.view.extensions)`), search for `docker` to filter results and select Docker extension authored by Microsoft. +- The Container Tools extension. To install the extension, open the Extensions view (`kb(workbench.view.extensions)`), search for `container tools` to filter results and select the Container Tools extension authored by Microsoft. - ![Select Docker extension](images/overview/installation-extension-search.png) + ![Select Container Tools extension](images/overview/installation-extension-search.png) ### Create a Python project @@ -40,7 +40,7 @@ After verifying your app runs properly, you can now containerize your applicatio ## Add Docker files to the project 1. Open the project folder in VS Code. -1. Open the **Command Palette** (`kb(workbench.action.showCommands)`) and choose **Docker: Add Docker Files to Workspace...**: +1. Open the **Command Palette** (`kb(workbench.action.showCommands)`) and choose **Containers: Add Docker Files to Workspace...**: ![Add Dockerfile to a Python project](images/quickstarts/python-add-python.png) @@ -62,7 +62,7 @@ After verifying your app runs properly, you can now containerize your applicatio 1. When prompted to include Docker Compose, select **No** if you do not want a Docker Compose file. If you select **Yes**, you will need to verify the path to your `wsgi.py` file in the `Dockerfile` to run the **Compose Up** command successfully. Compose is typically used when running multiple containers at once. -1. With all this information, the Docker extension creates the following files: +1. With all this information, the Container Tools extension creates the following files: - A `Dockerfile`. To learn more about IntelliSense in this file, refer to the [overview](/docs/containers/overview.md). @@ -77,7 +77,7 @@ After verifying your app runs properly, you can now containerize your applicatio This step is not required, but it is included to help you understand how to add environment variables that need to be set in the container's environment. -The Docker Extension helps you author Dockerfiles by using [IntelliSense](/docs/editing/intellisense.md) to provide auto-completions and contextual help. To see this feature in action: +The Container Tools extension helps you author Dockerfiles by using [IntelliSense](/docs/editing/intellisense.md) to provide auto-completions and contextual help. To see this feature in action: 1. Open the `Dockerfile`. 2. Underneath the `EXPOSE` statement, type `kb(editor.action.triggerSuggest)` to trigger IntelliSense and scroll to `ENV`. @@ -115,39 +115,39 @@ To give Python web developers a great starting point, we chose to use [Gunicorn] CMD ["gunicorn", "--bind", "0.0.0.0:5000", "{subfolder}.{module_file}:app"] ``` - During the **Docker: Add Docker Files to Workspace...** command, you configure the path to the Flask instance, however, the Docker extension assumes your Flask instance variable is named `app`. If this is not the case, you must change the variable name in the Dockerfile. + During the **Containers: Add Docker Files to Workspace...** command, you configure the path to the Flask instance, however, the Container Tools extension assumes your Flask instance variable is named `app`. If this is not the case, you must change the variable name in the Dockerfile. If your main module was in the root folder as a file named `main.py` and had a Flask instance variable was named `myapp`, the final argument in the command above will be `"main:myapp"`. Within subfolders, the argument would be `"subfolder1_name.subfolder2_name.main:myapp"`. ## Build, run, and debug the container -The **Docker: Add Docker Files to Workspace...** command automatically creates a Docker launch configuration to build and run your container in debug mode. To debug your Python app container: +The **Containers: Add Docker Files to Workspace...** command automatically creates a Docker launch configuration to build and run your container in debug mode. To debug your Python app container: 1. Navigate to the file that contains your app's startup code, and set a breakpoint. -1. Navigate to **Run and Debug** and select **Docker: Python - General**, **Docker: Python - Django**, or **Docker: Python - Flask**, as appropriate. +1. Navigate to **Run and Debug** and select **Containers: Python - General**, **Containers: Python - Django**, or **Containers: Python - Flask**, as appropriate. - ![Selected Docker debug configuration](images/quickstarts/python-debug-configuration.png) + ![Selected container debug configuration](images/quickstarts/python-debug-configuration.png) 1. Start debugging using the `kb(workbench.action.debug.start)` key. - - The Docker image builds. - - The Docker container runs. + - The container image builds. + - The container runs. - The python debugger stops at the breakpoint. 1. Step over this line once. 1. When ready, press continue. -The Docker extension will launch your browser to a randomly mapped port: +The Container Tools extension will launch your browser to a randomly mapped port: ![Django website launches](images/quickstarts/python-web-launch.png) >**Tip**: To modify your Docker build settings, such as changing the image tag, navigate to `.vscode -> tasks.json` under the `dockerBuild` attribute in the `docker-build` task. Use IntelliSense within the file (`kb(editor.action.triggerSuggest)`) to display all other valid directives. -## Use the Docker Explorer +## Use the Container Explorer -The Docker Explorer provides an interactive experience to examine and manage Docker assets such as containers, images, and so on. To see an example: +The Container Explorer provides an interactive experience to examine and manage container assets such as containers, images, and so on. To see an example: -1. Navigate to the Docker Explorer. +1. Navigate to the Container Explorer. 1. In the **Containers** tab, right-click on your container and choose **View Logs**. ![Viewing the logs of a container](images/quickstarts/python-view-logs.png) diff --git a/docs/containers/reference.md b/docs/containers/reference.md index f82e911152..c6e09afc35 100644 --- a/docs/containers/reference.md +++ b/docs/containers/reference.md @@ -3,21 +3,21 @@ Order: 10 Area: containers TOCTitle: Customize ContentId: 6784FBBE-9EE4-44A8-AC48-A52617EB1968 -PageTitle: Reference for Visual Studio Code Docker extension properties and tasks. +PageTitle: Reference for Visual Studio Code Container Tools extension properties and tasks. DateApproved: 4/18/2022 -MetaDescription: Reference for Docker build and Docker run tasks and properties in the Visual Studio Code Docker extension. +MetaDescription: Reference for Docker build and Docker run tasks and properties in the Visual Studio Code Container Tools extension. --- -# Customize the Docker extension +# Customize the Container Tools extension -The Docker extension includes several Visual Studio Code tasks to control the behavior of Docker [build](#docker-build-task) and [run](#docker-run-task), and form the basis of container startup for debugging. +The Container Tools extension includes several Visual Studio Code tasks to control the behavior of Docker [build](#docker-build-task) and [run](#docker-run-task), and form the basis of container startup for debugging. The tasks allow for a great deal of control and customization. The final configuration is a combination of general defaults, platform-specific defaults (such as Node.js, Python, or .NET), and user input. User input takes precedence when it conflicts with defaults. -All common features of Visual Studio Code tasks (for example, grouping tasks into compound tasks) are supported by Docker extension tasks. For more information on common task features and properties, see the Visual Studio Code [custom task](/docs/debugtest/tasks.md#custom-tasks) documentation. +All common features of Visual Studio Code tasks (for example, grouping tasks into compound tasks) are supported by Container Tools extension tasks. For more information on common task features and properties, see the Visual Studio Code [custom task](/docs/debugtest/tasks.md#custom-tasks) documentation. ## Docker build task -The `docker-build` task builds Docker images using the Docker command line (CLI). The task can be used by itself, or as part of a chain of tasks to run and/or debug an application within a Docker container. +The `docker-build` task builds images using the Docker command line (CLI). The task can be used by itself, or as part of a chain of tasks to run and/or debug an application within a container. The most important configuration settings for the `docker-build` task are `dockerBuild` and `platform`: @@ -28,13 +28,13 @@ See [property reference](#build-task-reference) for full list of all task proper ### Platform support -While the `docker-build` task in `tasks.json` can be used to build any Docker image, the extension has explicit support (and simplified configuration) for Node.js, Python, and .NET Core. +While the `docker-build` task in `tasks.json` can be used to build any image, the extension has explicit support (and simplified configuration) for Node.js, Python, and .NET Core. ### Node.js (docker-build) **Minimal configuration using defaults** -A Node.js based Docker image with no specific platform options can just set the `platform` property to `node`: +A Node.js-based image with no specific platform options can just set the `platform` property to `node`: ```json { @@ -51,19 +51,20 @@ A Node.js based Docker image with no specific platform options can just set the **Platform defaults** -For Node.js Docker images, the `docker-build` task infers the following options: +For Node.js-based images, the `docker-build` task infers the following options: | Property | Inferred Value | | --- | --- | | `dockerBuild.context` | The same directory in which the `package.json` resides. | | `dockerBuild.dockerfile` | The file `Dockerfile` in the same directory as the `package.json` resides. | | `dockerBuild.tag` | The application's `name` property in `package.json` (if defined), else the base name of the folder in which `package.json` resides. | +| `dockerBuild.pull` | Defaults to true in order to pull new base images before building. | ### Python (docker-build) **Minimal configuration using defaults** -A Python based Docker image with no specific platform options can just set the `platform` property to `python`: +A Python-based image with no specific platform options can just set the `platform` property to `python`: ```json { @@ -79,7 +80,7 @@ A Python based Docker image with no specific platform options can just set the ` **Platform defaults** -For Python Docker images, the `docker-build` task infers the following options: +For Python-based images, the `docker-build` task infers the following options: | Property | Inferred Value | | --- | --- | @@ -92,7 +93,7 @@ For Python Docker images, the `docker-build` task infers the following options: **Minimal configuration using defaults** -When you build a .NET-based Docker image, you can omit the `platform` property and just set the `netCore` object (`platform` is implicitly set to `netcore` when `netCore` object is present). Note that `appProject` is a required property: +When you build a .NET-based image, you can omit the `platform` property and just set the `netCore` object (`platform` is implicitly set to `netcore` when `netCore` object is present). Note that `appProject` is a required property: ```json { @@ -118,6 +119,7 @@ For .NET-based images, the `docker-build` task infers the following options: | `dockerBuild.context` | The root workspace folder. | | `dockerBuild.dockerfile` | The file `Dockerfile` in the root workspace folder. | | `dockerBuild.tag` | The base name of the root workspace folder. | +| `dockerBuild.pull` | Defaults to true in order to pull new base images before building. | ## Build task reference @@ -135,11 +137,11 @@ Here are all properties available for configuring `docker-build` task. All prope | Property | Description | `docker build` CLI Equivalent | | --- | --- | --- | -| `context` | The path to the Docker build context.
Required, unless inferred from the platform. | `PATH` | +| `context` | The path to the build context.
Required, unless inferred from the platform. | `PATH` | | `dockerfile` | The path to the Dockerfile.
Required, unless inferred from the platform. | `-f` or `--file` | -| `tag` | The tag applied to the Docker image.
Required, unless inferred from the platform. | `-t` or `--tag` | +| `tag` | The tag applied to the image.
Required, unless inferred from the platform. | `-t` or `--tag` | | `buildArgs` | Build arguments applied to the command line. This is a list of key-value pairs. | `--build-arg` | -| `labels` | Labels added to the Docker image. This is a list of key-value pairs (a JSON object).
In addition to labels specified here, a label `com.microsoft.created-by`, set to `visual-studio-code` is added to the image. This behavior can be turned off by setting `includeDefaults` property of the `labels` object to false. | `--label` | +| `labels` | Labels added to the image. This is a list of key-value pairs (a JSON object).
In addition to labels specified here, a label `com.microsoft.created-by`, set to `visual-studio-code` is added to the image. This behavior can be turned off by setting `includeDefaults` property of the `labels` object to false. | `--label` | | `target` | The target in the Dockerfile to build to. | `--target` | | `pull` | Whether or not to pull new base images before building. | `--pull` | | `customOptions` | Any extra parameters to add before the context argument. No attempt is made to resolve conflicts with other options or validate this option. | (any) | @@ -158,7 +160,7 @@ Here are all properties available for configuring `docker-build` task. All prope ## Docker run task -The `docker-run` task in `tasks.json` creates and starts a Docker container using the Docker command line (CLI). The task can be used by itself, or as part of a chain of tasks to debug an application within a Docker container. +The `docker-run` task in `tasks.json` creates and starts a container using the Docker command line (CLI). The task can be used by itself, or as part of a chain of tasks to debug an application within a container. The most important configuration settings for the `docker-run` task are `dockerRun` and `platform`: @@ -175,7 +177,7 @@ While the `docker-run` task can be used to run any Docker image, the extension h **Minimal configuration using defaults** -A Node.js based Docker image with no specific platform options can just set the `platform` property to `node`. +A Node.js-based image with no specific platform options can just set the `platform` property to `node`. ```json { @@ -192,7 +194,7 @@ A Node.js based Docker image with no specific platform options can just set the **Platform defaults** -For Node.js-based Docker images, the `docker-run` task infers the following options: +For Node.js-based images, the `docker-run` task infers the following options: | Property | Inferred Value | | --- | --- | @@ -202,7 +204,7 @@ For Node.js-based Docker images, the `docker-run` task infers the following opti ### Python (docker-run) -When building a Python-based Docker image, you can omit the `platform` property and just set the `python` object (`platform` is implicitly set to `python` when `python` object is present) +When building a Python-based image, you can omit the `platform` property and just set the `python` object (`platform` is implicitly set to `python` when `python` object is present) **Minimal configuration for Django Apps** @@ -269,7 +271,7 @@ When building a Python-based Docker image, you can omit the `platform` property **Platform defaults** -For Python-based Docker images, the `docker-run` task infers the following options: +For Python-based images, the `docker-run` task infers the following options: | Property | Inferred Value | | --- | --- | @@ -281,7 +283,7 @@ For Python-based Docker images, the `docker-run` task infers the following optio **Minimal configuration using defaults** -When building a .NET-based Docker image, you can omit the `platform` property and just set the `netCore` object (`platform` is implicitly set to `netcore` when `netCore` object is present). Note that `appProject` is a required property: +When building a .NET-based image, you can omit the `platform` property and just set the `netCore` object (`platform` is implicitly set to `netcore` when `netCore` object is present). Note that `appProject` is a required property: ```json { @@ -394,7 +396,7 @@ Here are all properties available for configuring `docker-run` task. All propert ## Docker Compose task -The `docker-compose` task in `tasks.json` creates and starts Docker containers using the Docker Compose command line (CLI). The task can be used by itself, or as part of a chain of tasks to debug an application within a Docker container. +The `docker-compose` task in `tasks.json` creates and starts containers using the Docker Compose command line (CLI). The task can be used by itself, or as part of a chain of tasks to debug an application within a container. The most important configuration setting for the `docker-compose` task is `dockerCompose`: @@ -468,7 +470,7 @@ Here are all properties available for configuring `docker-compose` task. All pro ## Command customization -The Docker extension executes a number of Docker CLI commands when you perform various operations, such as to build images, run containers, attach to containers, and view container logs. Some of these commands have a large number of optional arguments, often used in very specific scenarios. As an alternative to the above Visual Studio Code tasks, several commands can be customized when tasks are not in use. +The Container Tools extension executes a number of Docker CLI commands when you perform various operations, such as to build images, run containers, attach to containers, and view container logs. Some of these commands have a large number of optional arguments, often used in very specific scenarios. As an alternative to the above Visual Studio Code tasks, several commands can be customized when tasks are not in use. For example, the tokens `${serviceList}` and `${profileList}` in the [Compose Up](#docker-compose-up) command allows for easily starting a subset of the services within your Docker Compose YAML file(s). @@ -480,7 +482,7 @@ You have two options for configuring each of the templates (listed below). The f ```json { - "docker.commands.build": "docker build --rm -f \"${dockerfile}\" -t ${tag} \"${context}\"" + "containers.commands.build": "docker build --rm -f \"${dockerfile}\" -t ${tag} \"${context}\"" } ``` @@ -490,7 +492,7 @@ For example, three templates are shown in the following example: ```json { - "docker.commands.build": [ + "containers.commands.build": [ { "label": "Default build command", "template": "docker build --rm -f \"${dockerfile}\" -t ${tag} \"${context}\"" @@ -529,9 +531,9 @@ Supported tokens: | `${containerCommand}` | The CLI command / executable used to execute container commands. | | `${dockerfile}` | The workspace-relative path of the selected `Dockerfile`. | | `${tag}` | The value entered/confirmed by the user upon invoking the build command. If previously built, defaults to the previously entered value for that `Dockerfile`. | -| `${context}` | If set, the value of the `docker.imageBuildContextPath` configuration setting. Otherwise, the workspace-relative folder in which the `Dockerfile` resides. | +| `${context}` | If set, the value of the `containers.imageBuildContextPath` configuration setting. Otherwise, the workspace-relative folder in which the `Dockerfile` resides. | -> **Note**: If the `docker.commands.build` setting does not contain the `${tag}` token, the user will **not** be prompted to enter/confirm a tag. +> **Note**: If the `containers.commands.build` setting does not contain the `${tag}` token, the user will **not** be prompted to enter/confirm a tag. > **Note**: The `match` regular expression will be compared against the selected Dockerfile name and the workspace folder name. @@ -539,8 +541,8 @@ Supported tokens: | Configuration Setting | Default Value | |--|--| -| `docker.commands.run` | `${containerCommand} run --rm -d ${exposedPorts} ${tag}` | -| `docker.commands.runInteractive` | `${containerCommand} run --rm -it ${exposedPorts} ${tag}` | +| `containers.commands.run` | `${containerCommand} run --rm -d ${exposedPorts} ${tag}` | +| `containers.commands.runInteractive` | `${containerCommand} run --rm -it ${exposedPorts} ${tag}` | Supported tokens: @@ -552,11 +554,11 @@ Supported tokens: > **Note**: The `match` regular expression will be compared against the full tag of the selected image. -### Docker Attach +### Container Attach | Configuration Setting | Default Value | |--|--| -| `docker.commands.attach` | `${containerCommand} exec -it ${containerId} ${shellCommand}` +| `containers.commands.attach` | `${containerCommand} exec -it ${containerId} ${shellCommand}` Supported tokens: @@ -568,11 +570,11 @@ Supported tokens: > **Note**: The `match` regular expression will be compared against the container name and full tag of the container image. -### Docker Logs +### Container Logs | Configuration Setting | Default Value | |--|--| -| `docker.commands.logs` | `${containerCommand} logs -f ${containerId}` +| `containers.commands.logs` | `${containerCommand} logs -f ${containerId}` Supported tokens: @@ -587,31 +589,31 @@ Supported tokens: | Configuration Setting | Default Value | |--|--| -| `docker.commands.composeUp` | `${composeCommand} ${configurationFile} up ${detached} ${build}` | +| `containers.commands.composeUp` | `${composeCommand} ${configurationFile} up ${detached} ${build}` | Supported tokens: | Token | Description | | -- | -- | | `${configurationFile}` | Set to `-f` plus the workspace-relative path to the selected Docker Compose YAML file. | -| `${detached}` | Set to `-d` if the configuration setting `docker.dockerComposeDetached` is set to `true`. Otherwise, set to `""`. | -| `${build}` | Set to `--build` if the configuration setting `docker.dockerComposeBuild` is set to `true`. Otherwise, set to `""`. | +| `${detached}` | Set to `-d` if the configuration setting `containers.composeDetached` is set to `true`. Otherwise, set to `""`. | +| `${build}` | Set to `--build` if the configuration setting `containers.composeBuild` is set to `true`. Otherwise, set to `""`. | | `${serviceList}` | If specified, prompts for a subset of the services to start when the command is run. | | `${profileList}` | If specified and the Docker Compose YAML file contains profiles, prompts for a subset of the profiles to start when the command is run. | -| `${composeCommand}` | Set to the value of the `docker.composeCommand` setting if set, otherwise the extension will try to automatically determine the command to use (`docker compose` or `docker-compose`). | +| `${composeCommand}` | Set to the value of the `containers.composeCommand` setting if set, otherwise the extension will try to automatically determine the command to use (`docker compose` or `docker-compose`). | ### Docker Compose Down | Configuration Setting | Default Value | |--|--| -| `docker.commands.composeDown` | `${composeCommand} ${configurationFile} down` | +| `containers.commands.composeDown` | `${composeCommand} ${configurationFile} down` | Supported tokens: | Token | Description | | -- | -- | | `${configurationFile}` | Set to `-f` plus the workspace-relative path to the selected Docker Compose YAML file. | -| `${composeCommand}` | Set to the value of the `docker.composeCommand` setting if set, otherwise the extension will try to automatically determine the command to use (`docker compose` or `docker-compose`). | +| `${composeCommand}` | Set to the value of the `containers.composeCommand` setting if set, otherwise the extension will try to automatically determine the command to use (`docker compose` or `docker-compose`). | ### Additional supported tokens diff --git a/docs/containers/ssh.md b/docs/containers/ssh.md index 48e98cd1d3..54c3e86753 100644 --- a/docs/containers/ssh.md +++ b/docs/containers/ssh.md @@ -25,7 +25,7 @@ It is also possible to connect to the remote Docker engine directly using SSH tu * **macOS:** `ssh-agent` is present by default, but `ssh-add` does not persist across logins. Do `ssh-add `. We recommend configuring VS Code to run this command on terminal startup with `setting(terminal.integrated.profiles.osx)` `args` value or otherwise configuring a startup script. You can also manually run that command each login. -1. Verify that your identity is available to the agent with `ssh-add -l`. It should list one or more identities that look something like `2048 SHA256:abcdefghijk somethingsomething (RSA)`. If it does not list any identity, you will not be able to connect. Also, it needs to have the right identity. The Docker CLI working does not mean that the Explorer window will work. The Explorer window uses [dockerode](https://www.npmjs.com/package/dockerode) (which in turn uses [ssh2](https://www.npmjs.com/package/ssh2)), whereas the Docker CLI uses the `ssh` command, and benefits from an automatically inferred configuration. +1. Verify that your identity is available to the agent with `ssh-add -l`. It should list one or more identities that look something like `2048 SHA256:abcdefghijk somethingsomething (RSA)`. If it does not list any identity, you will not be able to connect. Also, it needs to have the right identity. If the Docker CLI is working, the Container Explorer should work. The Container Explorer window uses the Docker CLI, which in turn uses the `ssh` command, and benefits from an automatically inferred configuration. 1. Create a [Docker context](https://docs.docker.com/engine/context/working-with-contexts/) that points to the remote machine running Docker. Use `ssh://username@host:port` as the Docker endpoint (replace "host" with your remote machine name, or the remote machine IP address). Issue the following command from terminal window: @@ -37,13 +37,13 @@ It is also possible to connect to the remote Docker engine directly using SSH tu 1. Use the **Command Palette** (`kb(workbench.action.showCommands)`) to issue the **Docker Contexts: Use** command to activate the Docker context pointing to the remote machine. This command causes both VS Code and Docker CLI to use the remote machine context. - If you don't have this command, make sure to install the [Docker extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker). + If you don't have this command, make sure to install the [Container Tools extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers). -1. It is recommended to change the refresh rate to something longer than the default with the `docker.explorerRefreshInterval` setting. The connection over SSH is slow, and it can result in trying to refresh again before the previous refresh even finished. We recommend at least 3000 ms. +1. It is recommended to change the refresh rate to something longer than the default with the `containers.explorerRefreshInterval` setting. The connection over SSH is slow, and it can result in trying to refresh again before the previous refresh even finished. We recommend at least 3000 ms. ## Tips -* The "host" part in the Docker endpoint string (`ssh://username@host:port`) must be either a globally-resolvable DNS machine name, or an IP address. Docker extension will not be able to use host aliases defined in the [SSH configuration file](https://www.ssh.com/ssh/config/). +* The "host" part in the Docker endpoint string (`ssh://username@host:port`) must be either a globally-resolvable DNS machine name, or an IP address. The Container Tools extension will not be able to use host aliases defined in the [SSH configuration file](https://www.ssh.com/ssh/config/). * Make sure the remote machine host key is already memorized [in the known_hosts file](https://www.ssh.com/ssh/key/#known-host-keys). The simplest way to ensure this is to connect to the machine via `ssh` client program (run `ssh username@host:port` from the command line). Upon first-time connection, the `ssh` program will display the host key and let you approve it, updating the `known_hosts` file automatically. diff --git a/docs/containers/troubleshooting.md b/docs/containers/troubleshooting.md index 1f7bef4e1b..e1196198b4 100644 --- a/docs/containers/troubleshooting.md +++ b/docs/containers/troubleshooting.md @@ -2,22 +2,22 @@ Order: 12 Area: containers TOCTitle: Tips and Tricks -PageTitle: Visual Studio Code Docker development troubleshooting Tips and Tricks +PageTitle: Visual Studio Code container development troubleshooting Tips and Tricks ContentId: 79bb60fd-5248-43d2-8801-34b9fc2ec543 -MetaDescription: Visual Studio Code Docker development troubleshooting tips and tricks +MetaDescription: Visual Studio Code container development troubleshooting tips and tricks DateApproved: 12/21/2022 --- -# Docker Tools Tips and Tricks +# Container Tools Tips and Tricks -This article covers troubleshooting tips and tricks for the Visual Studio Code [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) extension. See the [Overview](/docs/containers/overview.md) and quickstart articles for [Node.js](/docs/containers/quickstart-node.md), [Python](/docs/containers/quickstart-python.md), or [ASP.NET](/docs/containers/quickstart-aspnet-core.md) for details on setting up and working with Docker. +This article covers troubleshooting tips and tricks for the Visual Studio Code [Container Tools](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) extension. See the [Overview](/docs/containers/overview.md) and quickstart articles for [Node.js](/docs/containers/quickstart-node.md), [Python](/docs/containers/quickstart-python.md), or [ASP.NET](/docs/containers/quickstart-aspnet-core.md) for details on setting up and working with containers. ## Running as a non-root user -For security reasons, we recommend selecting the default ports when executing the **Add Dockerfiles to Workspace** command, or otherwise opting for a port **greater than** 1023 whenever possible. This will allow VS Code to configure the Dockerfile with non-root access and prevent a malicious user from elevating permissions in the container. In some cases, there is no port selection, so the Docker extension configures non-root access by default. In all cases, you must ensure each resource (such as ports and files) modified or used by your application can be accessed by a non-root user in your container. +For security reasons, we recommend selecting the default ports when executing the **Containers: Add Docker Files to Workspace...** command, or otherwise opting for a port **greater than** 1023 whenever possible. This will allow VS Code to configure the Dockerfile with non-root access and prevent a malicious user from elevating permissions in the container. In some cases, there is no port selection, so the Container Tools extension configures non-root access by default. In all cases, you must ensure each resource (such as ports and files) modified or used by your application can be accessed by a non-root user in your container. -If you select a port less than 1024 when adding Dockerfiles to the workspace, the Docker extension **cannot** create a Dockerfile that runs the container as a non-root user. This is because ports in this range are called **well-known** or **system** ports and must execute with root privileges in order to bind a network socket to an IP address. +If you select a port less than 1024 when adding Dockerfiles to the workspace, the Container Tools extension **cannot** create a Dockerfile that runs the container as a non-root user. This is because ports in this range are called **well-known** or **system** ports and must execute with root privileges in order to bind a network socket to an IP address. -The **Add Dockerfiles to Workspace** command sets up non-root privileges if you choose a non-system port. If your current Dockerfile and `tasks.json` is not set up for non-root usage, try running the command **Add Dockerfiles to Workspace**, and select a port **greater than** 1023. This command overwrites your current Dockerfile and `tasks.json`. For some project types, such as **Python: General**, you might still need to modify your Dockerfile and `tasks.json`. Within the Dockerfile, you must expose a **non-system port**, create a working directory for your app code, and then add a non-root user with access to the app directory. Ensure that your exposed port is updated wherever it is referenced. In the example below, the Gunicorn port had to be updated to match the exposed port: +The **Containers: Add Docker Files to Workspace...** command sets up non-root privileges if you choose a non-system port. If your current Dockerfile and `tasks.json` is not set up for non-root usage, try running the command **Containers: Add Docker Files to Workspace...**, and select a port **greater than** 1023. This command overwrites your current Dockerfile and `tasks.json`. For some project types, such as **Python: General**, you might still need to modify your Dockerfile and `tasks.json`. Within the Dockerfile, you must expose a **non-system port**, create a working directory for your app code, and then add a non-root user with access to the app directory. Ensure that your exposed port is updated wherever it is referenced. In the example below, the Gunicorn port had to be updated to match the exposed port: ```docker # 1024 or higher @@ -62,7 +62,7 @@ Next, ensure the `docker run` task in `tasks.json` also expects the same port. Y Since VS Code runs as a non-root user, you will need to follow the steps in "Manage Docker as a non-root user" from [Post-installation steps for Linux](https://aka.ms/AA37yk6) to access Docker from the extension. -## Docker containers and images have disappeared from Docker view +## Containers and images have disappeared from Container Explorer This is most likely caused by a conflict with another extension called `Docker Explorer` (not authored by Microsoft). To resolve this issue, use a workaround described [vscode-docker issue #1609](https://github.com/microsoft/vscode-docker/issues/1609#issuecomment-586331394). @@ -71,18 +71,18 @@ This is most likely caused by a conflict with another extension called `Docker E Error message "Failed to connect. Is Docker installed and running?" 1. Make sure Docker engine **is installed** on the remote machine and that Docker CLI works (run `docker ps` from the terminal and ensure it does not return any errors). -2. If you are using a remote development environment (remote machine via SSH, WSL subsystem, GitHub Codespace), make sure the Docker extension is installed remotely as well as locally. +2. If you are using a remote development environment (remote machine via SSH, WSL subsystem, GitHub Codespace), make sure the Container Tools extension is installed remotely as well as locally. ## Invalid URL errors -If you have a need to connect to a remote Docker daemon, we recommend using Docker contexts instead of a `docker.environment` attribute in the settings. Check out this guide to learn how to [create and use a context](https://docs.docker.com/engine/context/working-with-contexts/) to communicate with a remote Docker daemon. +If you have a need to connect to a remote Docker daemon, we recommend using Docker contexts instead of a `containers.environment` attribute in the settings. Check out this guide to learn how to [create and use a context](https://docs.docker.com/engine/context/working-with-contexts/) to communicate with a remote Docker daemon. -If you still need to override the Docker context you are currently using, make sure your `DOCKER_HOST` environment variable or `docker.environment.DOCKER_HOST` attribute includes a protocol in the URL (for example, `ssh://myuser@mymachine` or `tcp://1.2.3.4`). +If you still need to override the Docker context you are currently using, make sure your `DOCKER_HOST` environment variable or `containers.environment.DOCKER_HOST` attribute includes a protocol in the URL (for example, `ssh://myuser@mymachine` or `tcp://1.2.3.4`). -> **Note:** Keep in mind that your `docker.environment.DOCKER_HOST` attribute will override your Docker context and the `DOCKER_HOST` environment variable will override both the `docker.environment.DOCKER_HOST` attribute and your Docker context. +> **Note:** Keep in mind that your `containers.environment.DOCKER_HOST` attribute will override your Docker context and the `DOCKER_HOST` environment variable will override both the `containers.environment.DOCKER_HOST` attribute and your Docker context. > **Tip**: In Powershell you can change your Docker environment variable with `$ENV:DOCKER_HOST = 'ssh://username@1.2.3.4'` ## Questions and feedback -We love your feedback! If you have any ideas or suggestions, [report an issue](https://github.com/microsoft/vscode-docker/issues/new). +We love your feedback! If you have any ideas or suggestions, [report an issue](https://github.com/microsoft/vscode-containers/issues/new). diff --git a/docs/containers/tutorial-django-push-to-registry.md b/docs/containers/tutorial-django-push-to-registry.md index 092bc0ca0b..eb8b9525c4 100644 --- a/docs/containers/tutorial-django-push-to-registry.md +++ b/docs/containers/tutorial-django-push-to-registry.md @@ -4,7 +4,7 @@ TOCTitle: Push Django Images to a Registry ContentId: 4eb2543d-84a7-4e11-b835-0d238ce7ed7a PageTitle: Push Django images to a registry in Visual Studio Code DateApproved: 1/17/2023 -MetaDescription: How to push a Django image to a container registry using the VS Code docker extension +MetaDescription: How to push a Django image to a container registry using the VS Code Container Tools extension MetaSocialImage: ../python/images/tutorial/python-social.png --- @@ -16,9 +16,9 @@ In this tutorial, you take a container image of a Python Django app you built lo Create a container registry to push images to. For more information about how to authenticate to and work with registries, see [Using container registries](/docs/containers/quickstart-container-registries.md). -Make sure that the registry endpoint you created is visible under **Registries** in the **Docker Explorer** of VS Code: +Make sure that the registry endpoint you created is visible under **Registries** in the **Container Explorer** of VS Code: -![Docker Explorer in VS Code showing registries](images/quickstarts/python-django-registries.png) +![Container Explorer in VS Code showing registries](images/quickstarts/python-django-registries.png) ## Settings for Django apps @@ -33,7 +33,7 @@ Make sure that the registry endpoint you created is visible under **Registries** Without this entry, you'll see a "DisallowedHost" message after deployment that instructs you to add the website domain to `ALLOWED_HOSTS`. This will require you to rebuild, push, and redeploy the image once again. -1. On the **Command Palette** (`kb(workbench.action.showCommands)`), select **Docker: Build Image** to rebuild image with new settings. +1. On the **Command Palette** (`kb(workbench.action.showCommands)`), select **Containers Images: Build Image...** to rebuild image with new settings. >**Tip**: If you want to test your image in production on multiple hosting services, you can simply input `"*"` in ALLOWED_HOSTS. @@ -41,7 +41,7 @@ Make sure that the registry endpoint you created is visible under **Registries** Once `ALLOWED_HOSTS` have been declared, the next step is to push your Django image to a container registry: -1. Open the **Command Palette** (`kb(workbench.action.showCommands)`) and select **Docker: Push**. +1. Open the **Command Palette** (`kb(workbench.action.showCommands)`) and select **Container Images: Push...**. 1. Choose the image you just built to push into the registry. @@ -51,7 +51,7 @@ Once `ALLOWED_HOSTS` have been declared, the next step is to push your Django im 1. Once a registry and full tag have been chosen, the image will be pushed. Upload progress will appear in the **Terminal** window. -1. Once completed, expand the **Registries** > **Azure** (or **DockerHub**) node in the **Docker Explorer**, then expand the registry and image name to see the exact image. (You may need to refresh the **Docker Explorer**.) +1. Once completed, expand the **Registries** > **Azure** (or **DockerHub**) node in the **Container Explorer**, then expand the registry and image name to see the exact image. (You may need to refresh the **Container Explorer**.) ![The built app image in the Azure Container Registry](images/quickstarts/python-django-image-in-acr.png) diff --git a/docs/devcontainers/containers.md b/docs/devcontainers/containers.md index f2be576c54..5d348b2e1a 100644 --- a/docs/devcontainers/containers.md +++ b/docs/devcontainers/containers.md @@ -395,9 +395,9 @@ You can also inspect your volumes in the Remote Explorer. Make sure you have Con ![Right-click dev volumes in Remote Explorer](images/containers/dev-volumes.png) -If you have the [Docker extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) installed, you can right-click on a volume in the **Volumes** section of the **Docker Explorer** and select **Explore in a Development Container**. +If you have the [Container Tools extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) installed, you can right-click on a volume in the **Volumes** section of the **Container Explorer** and select **Explore in a Development Container**. -![Explore in dev container in Docker context menu](images/containers/docker-explore-dev-container.png) +![Explore in dev container in Container Tools context menu](images/containers/docker-explore-dev-container.png) ## Managing extensions @@ -459,11 +459,11 @@ If there are extensions that you would like always installed in any container, y Extensions are typically designed and tested to either run locally or remotely, not both. However, if an extension supports it, you can force it to run in a particular location in your `settings.json` file. -For example, the setting below will force the [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) extension to run locally and [Remote - SSH: Editing Configuration Files](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh-edit) extension to run remotely instead of their defaults: +For example, the setting below will force the [Container Tools](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) extension to run locally and [Remote - SSH: Editing Configuration Files](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh-edit) extension to run remotely instead of their defaults: ```json "remote.extensionKind": { - "ms-azuretools.vscode-docker": [ "ui" ], + "ms-azuretools.vscode-containers": [ "ui" ], "ms-vscode-remote.remote-ssh-edit": [ "workspace" ] } ``` @@ -610,9 +610,9 @@ See [here for a list of active issues](https://aka.ms/vscode-remote/containers/i See the Docker troubleshooting guide for [Windows](https://docs.docker.com/docker-for-windows/troubleshoot) or [Mac](https://docs.docker.com/docker-for-mac/troubleshoot), consult [Docker Support Resources](https://success.docker.com/article/best-support-resources) for more information. -### Docker Extension limitations +### Container Tools Extension limitations -If you are using the Docker or Kubernetes extension from a WSL, Remote - Tunnels or Remote - SSH window, using the **Attach Visual Studio Code** context menu action in the Docker or Kubernetes views will ask to pick from the available containers a second time. +If you are using the Container Tools or Kubernetes extension from a WSL, Remote - Tunnels or Remote - SSH window, using the **Attach Visual Studio Code** context menu action in the Container Explorer or Kubernetes view will ask to pick from the available containers a second time. ### Extension limitations diff --git a/docs/devcontainers/images/containers/docker-explore-dev-container.png b/docs/devcontainers/images/containers/docker-explore-dev-container.png index fea0783e82..4c675464c4 100644 --- a/docs/devcontainers/images/containers/docker-explore-dev-container.png +++ b/docs/devcontainers/images/containers/docker-explore-dev-container.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ab420d7c490012d9d08294ba33a78f5e35ab17f9c03c87866dea99811af7e61e -size 17542 +oid sha256:c6fb15b6c6b9053ac801a0be6aac64cb52011cf595d36710ee3a031856d51cd0 +size 20545 diff --git a/docs/devcontainers/images/tips-and-tricks/docker-remove.png b/docs/devcontainers/images/tips-and-tricks/docker-remove.png index d71ced346f..b24e677b81 100644 --- a/docs/devcontainers/images/tips-and-tricks/docker-remove.png +++ b/docs/devcontainers/images/tips-and-tricks/docker-remove.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2be79483391f686b53ff681408ab37156623e72f69ba7d714f76da50cf54fd3f -size 28068 +oid sha256:066ef67ae0b18aa157f1d288ca59d1f74bb65eea0b255ce51896ec56023e08c6 +size 27598 diff --git a/docs/devcontainers/tips-and-tricks.md b/docs/devcontainers/tips-and-tricks.md index 82a06552db..751d7840d2 100644 --- a/docs/devcontainers/tips-and-tricks.md +++ b/docs/devcontainers/tips-and-tricks.md @@ -141,15 +141,15 @@ You can delete containers by selecting the **Remote Explorer**, right-click on t However, this does not clean up any images you may have downloaded, which can clutter up your system. -### Option 2: Use the Docker extension +### Option 2: Use the Container Tools extension 1. Open a **local** window in VS Code (**File > New Window**). -2. Install the [Docker extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) from the Extensions view if not already present. +2. Install the [Container Tools extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) from the Extensions view if not already present. -3. You can then go to the Docker view and expand the **Containers** or **Images** node, right-click, and select **Remove Container / Image**. +3. You can then go to the Container Explorer and expand the **Containers** or **Images** node, right-click, and select **Remove Container / Image**. - ![Docker Explorer screenshot](images/tips-and-tricks/docker-remove.png) + ![Container Explorer screenshot](images/tips-and-tricks/docker-remove.png) ### Option 3: Use the Docker CLI to pick containers to delete @@ -211,7 +211,7 @@ There is [known issue with Docker for Mac](https://github.com/docker/for-mac/iss ## Using an SSH tunnel to connect to a remote Docker host -The [Develop inside a container on a remote Docker Machine or SSH host](/remote/advancedcontainers/develop-remote-host.md) article covers how to setup VS Code when working with a remote Docker host. This is often as simple as setting the [Docker extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) `docker.environment` property in `settings.json` or the `DOCKER_HOST` environment variable to a `ssh://` or `tcp://` URI. +The [Develop inside a container on a remote Docker Machine or SSH host](/remote/advancedcontainers/develop-remote-host.md) article covers how to setup VS Code when working with a remote Docker host. This is often as simple as setting the [Container Tools extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) `containers.environment` property in `settings.json` or the `DOCKER_HOST` environment variable to a `ssh://` or `tcp://` URI. However, you may run into situations where this does not work in your environment due to SSH configuration complexity or other limitations. In this case, an SSH tunnel can be used as a fallback. @@ -223,10 +223,10 @@ Follow these steps: 1. Install an [OpenSSH compatible SSH client](/docs/remote/troubleshooting.md#installing-a-supported-ssh-client). -2. Update the [Docker extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) `docker.environment` property in your user or workspace `settings.json` as follows: +2. Update the [Container Tools extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) `containers.environment` property in your user or workspace `settings.json` as follows: ```json - "docker.environment": { + "containers.environment": { "DOCKER_HOST": "tcp://localhost:23750" } ``` diff --git a/docs/java/extensions.md b/docs/java/extensions.md index 55d856bc0c..3d19924390 100644 --- a/docs/java/extensions.md +++ b/docs/java/extensions.md @@ -77,7 +77,7 @@ Keymap extensions apply keyboard shortcuts from other IDEs or editors on to VS C We'd also like to recommend a couple of other extensions that are useful for remote and container development scenarios. * The [Remote Development](/docs/remote/remote-overview.md) extensions let you use VS Code to access a container, a remote machine, or the Windows Subsystem for Linux. -* You can use [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) extension to build docker images and work with image registries. +* You can use the [Container Tools](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) extension to build docker images and work with image registries. * [Kubernetes](https://marketplace.visualstudio.com/items?itemName=ms-kubernetes-tools.vscode-kubernetes-tools) extension provides an Explorer view to manage clusters and the nodes inside. It also provides advanced syntax support for editing Kubernetes manifest files. * [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) is a great tool to use when you need to collaborate with someone else on the same code base. diff --git a/docs/nodejs/nodejs-deployment.md b/docs/nodejs/nodejs-deployment.md index d331f6584c..e1977c8d56 100644 --- a/docs/nodejs/nodejs-deployment.md +++ b/docs/nodejs/nodejs-deployment.md @@ -21,4 +21,4 @@ Tutorial | Description | Related Tools --- | --- | --- [Deploy Azure Functions](https://learn.microsoft.com/azure/developer/javascript/tutorial/azure-function-cosmos-db-mongo-api) | Build and manage Azure Functions serverless apps
directly in VS Code | [Azure Resources](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureresourcegroups)
[Azure Functions](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azurefunctions)
[Azure Databases](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-cosmosdb) [Deploy using Azure Portal
and Azure App Service](https://learn.microsoft.com/azure/app-service/tutorial-nodejs-mongodb-app) | Manage Azure resources directly in VS Code
with Azure App Service | [MongoDB](https://www.mongodb.com/docs/manual/installation/)
[Azure Portal](https://portal.azure.com/) -[Deploy using Docker](https://learn.microsoft.com/azure/developer/javascript/tutorial/tutorial-vscode-docker-node/tutorial-vscode-docker-node-01) | Deploy your website using a Docker container | [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker)
[Azure CLI](https://learn.microsoft.com/cli/azure/install-azure-cli)
[Azure App Service](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice)
[Azure Resources](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureresourcegroups) +[Deploy using Docker](https://learn.microsoft.com/azure/developer/javascript/tutorial/tutorial-vscode-docker-node/tutorial-vscode-docker-node-01) | Deploy your website using a container | [Container Tools](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers)
[Azure CLI](https://learn.microsoft.com/cli/azure/install-azure-cli)
[Azure App Service](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice)
[Azure Resources](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureresourcegroups) diff --git a/docs/python/python-on-azure.md b/docs/python/python-on-azure.md index 1521648a5a..86f3582bd0 100644 --- a/docs/python/python-on-azure.md +++ b/docs/python/python-on-azure.md @@ -22,5 +22,5 @@ Tutorial | Description | Related Tools --- | --- | --- [Deploy Python web app to Azure App Service](https://learn.microsoft.com/azure/app-service/quickstart-python) | Deploy a simple web app | [Django](https://www.djangoproject.com/)
[Flask](https://flask.palletsprojects.com/)
[Azure CLI](https://marketplace.visualstudio.com/items?itemName=ms-vscode.azurecli)
[Azure App Service](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice)
[Azure Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-node-azure-pack) [Deploy Python web app with database to Azure App Service](https://learn.microsoft.com/azure/app-service/tutorial-python-postgresql-app) | Deploy a web app with PostgreSQL database | [Django](https://www.djangoproject.com/)
[Flask](https://flask.palletsprojects.com/)
[PostgreSQL](https://www.postgresql.org/download/)
[Azure App Service](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice)
[Azure Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-node-azure-pack) -[Deploy Python containers to Azure App Service](https://learn.microsoft.com/azure/developer/python/tutorial-deploy-containers-01) | Deploy a Docker container | [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker)
[Azure App Service](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice)
[Azure Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-node-azure-pack) +[Deploy Python containers to Azure App Service](https://learn.microsoft.com/azure/developer/python/tutorial-deploy-containers-01) | Deploy a container | [Container Tools](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers)
[Azure App Service](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice)
[Azure Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-node-azure-pack) [Deploy Python to Azure Functions](https://learn.microsoft.com/azure/azure-functions/create-first-function-vs-code-python) | Deploy serverless code with Azure Functions | [Azure Functions Core Tools](https://learn.microsoft.com/en-us/azure/azure-functions/functions-run-local#install-the-azure-functions-core-tools)
[Azure Functions](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azurefunctions)
[Azure Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-node-azure-pack) diff --git a/docs/python/tutorial-create-containers.md b/docs/python/tutorial-create-containers.md index 52584c7e5a..dbc90bbe50 100644 --- a/docs/python/tutorial-create-containers.md +++ b/docs/python/tutorial-create-containers.md @@ -3,11 +3,11 @@ Order: 14 Area: python TOCTitle: Create containers ContentId: 4e45a3f6-b72d-4647-82a5-22f7ee593d47 -PageTitle: Create Docker containers for Python web apps in Visual Studio Code +PageTitle: Create containers for Python web apps in Visual Studio Code DateApproved: 04/03/2025 -MetaDescription: How to create Docker containers for Python web apps using the VS Code Docker extension +MetaDescription: How to create containers for Python web apps using the VS Code Container Tools extension MetaSocialImage: images/tutorial/python-social.png --- -# Create Docker containers for Python +# Create containers for Python This page is redirected to /docs/containers/quickstart-python.md and only exists to keep the "Create containers" TOC item. diff --git a/docs/python/tutorial-django.md b/docs/python/tutorial-django.md index 96be94cc39..b0ee0dd13b 100644 --- a/docs/python/tutorial-django.md +++ b/docs/python/tutorial-django.md @@ -946,9 +946,9 @@ Perform the following steps to enable the administrative interface: You can customize the administrative interface as much as you like. For example, you could provide capabilities to edit and remove entries in the database. For more information on making customizations, refer to the [Django admin site documentation](https://docs.djangoproject.com/en/3.1/ref/contrib/admin/). -### Create a container for a Django app using the Docker extension +### Create a container for a Django app using the Container Tools extension -The [Docker extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) makes it easy to build, manage, and deploy containerized applications from Visual Studio Code. If you're interested in learning how to create a Python container for the Django app developed in this tutorial, check out the [Python in a container](/docs/containers/quickstart-python.md) tutorial, which will walk you through how to: +The [Container Tools extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) makes it easy to build, manage, and deploy containerized applications from Visual Studio Code. If you're interested in learning how to create a Python container for the Django app developed in this tutorial, check out the [Python in a container](/docs/containers/quickstart-python.md) tutorial, which will walk you through how to: - Create a `Dockerfile` file describing a simple Python container. - Build, run, and verify the functionality of a [Django](https://www.djangoproject.com/) app. diff --git a/docs/python/tutorial-flask.md b/docs/python/tutorial-flask.md index 911a8702a9..9d744b3a5c 100644 --- a/docs/python/tutorial-flask.md +++ b/docs/python/tutorial-flask.md @@ -637,9 +637,9 @@ Throughout this Flask tutorial, all the app code is contained in a single `app.p 1. Set an environment variable for `FLASK_APP`. On Linux and macOS, use `export set FLASK_APP=webapp`; on Windows use `$env:FLASK_APP=webapp` if you're using PowerShell, or `set FLASK_APP=webapp` if you're using Command Prompt. 1. Navigate into the `hello_app` folder, then launch the program using `python -m flask run`. -### Create a container for a Flask app using the Docker extension +### Create a container for a Flask app using the Container Tools extension -The [Docker extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) makes it easy to build, manage, and deploy containerized applications from Visual Studio Code. If you're interested in learning how to create a Python container for the Flask app developed in this tutorial, check out the [Python in a container](/docs/containers/quickstart-python.md) tutorial, which will walk you through how to: +The [Container Tools extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) makes it easy to build, manage, and deploy containerized applications from Visual Studio Code. If you're interested in learning how to create a Python container for the Flask app developed in this tutorial, check out the [Python in a container](/docs/containers/quickstart-python.md) tutorial, which will walk you through how to: - Create a `Dockerfile` file describing a simple Python container. - Build, run, and verify the functionality of a [Flask](https://flask.palletsprojects.com) app. diff --git a/docs/remote/faq.md b/docs/remote/faq.md index 60ad8050bd..c188caec49 100644 --- a/docs/remote/faq.md +++ b/docs/remote/faq.md @@ -83,9 +83,9 @@ All other communication between the server and the VS Code client is accomplishe You can find a list of locations VS Code itself needs access to in the [network connections article](/docs/setup/network.md#common-hostnames). -### Why can't I see my local containers in the Docker extension when using the Remote - extensions? +### Why can't I see my local containers in the Container Tools extension when using the Remote - extensions? -By default, the Docker extension will run remotely. While this is a sensible default in some cases, it means the extension may not show local containers when VS Code is connected to a remote SSH host, container, or WSL. +By default, the Container Tools extension will run remotely. While this is a sensible default in some cases, it means the extension may not show local containers when VS Code is connected to a remote SSH host, container, or WSL. You can use one of the following solutions to resolve this problem: diff --git a/docs/remote/ssh.md b/docs/remote/ssh.md index b95cb96594..db33212364 100644 --- a/docs/remote/ssh.md +++ b/docs/remote/ssh.md @@ -197,11 +197,11 @@ If there are extensions that you would like to always have installed on any SSH Extensions are typically designed and tested to either run locally or remotely, not both. However, if an extension supports it, you can force it to run in a particular location in your `settings.json` file. -For example, the setting below will force the [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) extension to run locally and [Remote - SSH: Editing Configuration Files](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh-edit) extension to run remotely instead of their defaults: +For example, the setting below will force the [Container Tools](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) extension to run locally and [Remote - SSH: Editing Configuration Files](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh-edit) extension to run remotely instead of their defaults: ```json "remote.extensionKind": { - "ms-azuretools.vscode-docker": [ "ui" ], + "ms-azuretools.vscode-containers": [ "ui" ], "ms-vscode-remote.remote-ssh-edit": [ "workspace" ] } ``` @@ -293,9 +293,9 @@ SSHFS is the most convenient option and does not require any file sync'ing. Howe - Local proxy settings are not reused on the remote host, which can prevent extensions from working unless the appropriate proxy information is configured on the remote host (for example global `HTTP_PROXY` or `HTTPS_PROXY` environment variables with the appropriate proxy information). - See [here for a list of active issues](https://aka.ms/vscode-remote/ssh/issues) related to SSH. -### Docker Extension limitations +### Container Tools Extension limitations -If you are using the Docker or Kubernetes extension from a WSL, Remote - Tunnels or Remote - SSH window, using the **Attach Visual Studio Code** context menu action in the Docker or Kubernetes views will ask to pick from the available containers a second time. +If you are using the Container Tools or Kubernetes extension from a WSL, Remote - Tunnels or Remote - SSH window, using the **Attach Visual Studio Code** context menu action in the Container Explorer or Kubernetes view will ask to pick from the available containers a second time. ### Extension limitations diff --git a/docs/remote/wsl.md b/docs/remote/wsl.md index 86b9c568bd..ee93fd6c40 100644 --- a/docs/remote/wsl.md +++ b/docs/remote/wsl.md @@ -203,9 +203,9 @@ Firebase via node unusably slow only on WSL | [Microsoft/WSL#2657](https://githu If you clone a Git repository using SSH and your SSH key has a passphrase, VS Code's pull and sync features may hang when running remotely. Either use an SSH key without a passphrase, clone using HTTPS, or run `git push` from the command line to work around the issue. -### Docker Extension limitations +### Container Tools Extension limitations -While the Docker extension can run both remotely and locally, if it is already installed locally, you will be unable to install on a remote SSH host without first uninstalling it locally. We will address this problem in a future VS Code release. +While the Container Tools extension can run both remotely and locally, if it is already installed locally, you will be unable to install on a remote SSH host without first uninstalling it locally. We will address this problem in a future VS Code release. ### Extension limitations @@ -271,11 +271,11 @@ Once the server is up and running the proxy settings on the *Remote* tab are use Extensions are typically designed and tested to either run locally or remotely, not both. However, if an extension supports it, you can force it to run in a particular location in your `settings.json` file. -For example, the setting below will force the [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) extension to run locally and [Remote - SSH: Editing Configuration Files](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh-edit) extension to run remotely instead of their defaults: +For example, the setting below will force the [Container Tools](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) extension to run locally and [Remote - SSH: Editing Configuration Files](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh-edit) extension to run remotely instead of their defaults: ```json "remote.extensionKind": { - "ms-azuretools.vscode-docker": [ "ui" ], + "ms-azuretools.vscode-containers": [ "ui" ], "ms-vscode-remote.remote-ssh-edit": [ "workspace" ] } ``` diff --git a/docs/setup/enterprise.md b/docs/setup/enterprise.md index 0532bdf08c..90c6631a46 100644 --- a/docs/setup/enterprise.md +++ b/docs/setup/enterprise.md @@ -49,8 +49,8 @@ The following JSON snippet shows examples of the different `extensions.allowed` // Allow prettier extension "esbenp.prettier-vscode": true, - // Do not allow docker extension - "ms-azuretools.vscode-docker": false, + // Do not allow container tools extension + "ms-azuretools.vscode-containers": false, // Allow only version 3.0.0 of the eslint extension "dbaeumer.vscode-eslint": ["3.0.0"], diff --git a/docs/sourcecontrol/github.md b/docs/sourcecontrol/github.md index 5f0ce5eff9..3a1374df48 100644 --- a/docs/sourcecontrol/github.md +++ b/docs/sourcecontrol/github.md @@ -239,7 +239,7 @@ Sometimes you'll want to switch to working on a repository in a development envi * Create a GitHub codespace (if you have the [GitHub Codespaces extension](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces)). * Clone the repository locally. -* Clone the repository into a Docker container (if you have [Docker](https://docker.com/) and the Microsoft [Docker extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) installed). +* Clone the repository into a Docker container (if you have [Docker](https://docker.com/) and the Microsoft [Container Tools extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) installed). To switch development environments, use the **Continue Working On...** command, available from the Command Palette (`kb(workbench.action.showCommands)`) or by clicking on the Remote indicator in the Status bar. diff --git a/docs/supporting/oss-extensions.md b/docs/supporting/oss-extensions.md index 9d7ae36c14..52c588760d 100644 --- a/docs/supporting/oss-extensions.md +++ b/docs/supporting/oss-extensions.md @@ -45,9 +45,9 @@ As more and more teams in Microsoft contribute extensions, we realize that it ca | [Blockchain Development Kit for Ethereum](https://marketplace.visualstudio.com/items?itemName=AzBlockchain.azure-blockchain) | ✔ | [MIT](https://marketplace.visualstudio.com/items/AzBlockchain.azure-blockchain/license) | | [C/C++](https://marketplace.visualstudio.com/items/ms-vscode.cpptools) | | [Microsoft](https://marketplace.visualstudio.com/items/ms-vscode.cpptools/license) | | [C#](https://marketplace.visualstudio.com/items/ms-dotnettools.csharp) | ✔ ([Repo](https://github.com/OmniSharp/omnisharp-vscode)) | [Microsoft](https://marketplace.visualstudio.com/items/ms-dotnettools.csharp/license) | +| [Container Tools](https://marketplace.visualstudio.com/items/ms-azuretools.vscode-containers) | ✔ | [MIT](https://marketplace.visualstudio.com/items/ms-azuretools.vscode-containers/license) | | [Cordova Tools](https://marketplace.visualstudio.com/items/msjsdiag.cordova-tools) | ✔ ([Repo](https://github.com/microsoft/vscode-cordova)) | [Microsoft](https://marketplace.visualstudio.com/items/msjsdiag.cordova-tools/license) | | [Debugger for Java](https://marketplace.visualstudio.com/items/vscjava.vscode-java-debug) | ✔ | [MIT](https://marketplace.visualstudio.com/items/vscjava.vscode-java-debug/license) | -| [Docker](https://marketplace.visualstudio.com/items/ms-azuretools.vscode-docker) | ✔ | [MIT](https://marketplace.visualstudio.com/items/ms-azuretools.vscode-docker/license) | | [docs-article-templates](https://marketplace.visualstudio.com/items?itemName=docsmsft.docs-article-templates) | ✔ | [MIT](https://docsmsft.gallerycdn.vsassets.io/extensions/docsmsft/docs-markdown/0.2.2/1547755350969/Microsoft.VisualStudio.Services.Content.License) | | [docs-markdown](https://marketplace.visualstudio.com/items/docsmsft.docs-markdown) | ✔ | [MIT](https://marketplace.visualstudio.com/items/docsmsft.docs-markdown/license) | | [docs-preview](https://marketplace.visualstudio.com/items/docsmsft.docs-preview) | ✔ | [MIT](https://marketplace.visualstudio.com/items/docsmsft.docs-preview/license) | diff --git a/docs/toc.json b/docs/toc.json index fc74f1ae9e..bddeaea403 100644 --- a/docs/toc.json +++ b/docs/toc.json @@ -306,7 +306,7 @@ ] }, { - "name": "Docker", + "name": "Container Tools", "area": "containers", "topics": [ ["Overview", "/docs/containers/overview"], @@ -361,7 +361,7 @@ ["Overview", "/docs/azure/overview"], ["Getting Started", "/docs/azure/gettingstarted"], ["Deployment", "/docs/azure/deployment"], - ["Docker", "/docs/azure/docker"], + ["Containers", "/docs/azure/containers"], ["Azure Kubernetes Service", "/docs/azure/aksextensions"], ["Kubernetes", "/docs/azure/kubernetes"], ["MongoDB", "/docs/azure/mongodb"], diff --git a/remote/advancedcontainers/develop-remote-host.md b/remote/advancedcontainers/develop-remote-host.md index 6317a486cf..dc4d33f6d0 100644 --- a/remote/advancedcontainers/develop-remote-host.md +++ b/remote/advancedcontainers/develop-remote-host.md @@ -40,12 +40,12 @@ This model only requires that a Docker Engine be running on a remote host that y ### A basic remote example -Setting up VS Code to attach to a container on a remote Docker host can be as easy as setting the [Docker extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) `docker.environment` property in `settings.json` and restarting VS Code (or reloading the window). +Setting up VS Code to attach to a container on a remote Docker host can be as easy as setting the [Container Tools extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) `containers.environment` property in `settings.json` and restarting VS Code (or reloading the window). For example: ```json -"docker.environment": { +"containers.environment": { "DOCKER_HOST": "ssh://your-remote-user@your-remote-machine-fqdn-or-ip-here" } ``` @@ -92,10 +92,10 @@ Recent versions of Docker (18.06+) have added support for the SSH protocol to co First, install a [supported SSH client](/docs/remote/troubleshooting.md#installing-a-supported-ssh-client), configure [key based authentication](/docs/remote/troubleshooting.md#configuring-key-based-authentication)), and then **import your key into your local SSH agent** (which often is not running by default on Windows and Linux). See the article on [using SSH Keys with Git](/docs/devcontainers/containers.md#using-ssh-keys) for details on configuring the agent and adding the key. -Then, add the following [Docker extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) `docker.environment` property to `settings.json` (replacing values as appropriate): +Then, add the following [Container Tools extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) `containers.environment` property to `settings.json` (replacing values as appropriate): ```json -"docker.environment": { +"containers.environment": { "DOCKER_HOST": "ssh://your-remote-user@your-remote-machine-fqdn-or-ip-here" } ``` @@ -106,10 +106,10 @@ After restarting VS Code (or reloading the window), you will now be able to [att ### Using the TCP protocol -While the SSH protocol has its own built-in authorization mechanism, using the TCP protocol often requires setting other [Docker extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) properties in your `settings.json`. These are: +While the SSH protocol has its own built-in authorization mechanism, using the TCP protocol often requires setting other [Container Tools extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) properties in your `settings.json`. These are: ```json -"docker.environment": { +"containers.environment": { "DOCKER_HOST": "tcp://your-remote-machine-fqdn-or-ip-here:port", "DOCKER_CERT_PATH": "/optional/path/to/folder/with/certificate/files", "DOCKER_TLS_VERIFY": "1" // or "0" @@ -133,9 +133,9 @@ If you'd prefer not to use `settings.json`, you can set **environment variables* You create new contexts with `docker context create`. The current context can be changed using `docker context use `. -The [Docker extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) comes with the `docker.environment` setting where environment variables like `DOCKER_HOST` or `DOCKER_CONTEXT` can be set that are also honored by the Dev Containers extension. +The [Container Tools extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) comes with the `containers.environment` setting where environment variables like `DOCKER_HOST` or `DOCKER_CONTEXT` can be set that are also honored by the Dev Containers extension. -> **Note:** The above settings are only visible when the Docker extension is installed. Without the Docker extension, Dev Containers will use the current context. +> **Note:** The above settings are only visible when the Container Tools extension is installed. Without the Container Tools extension, Dev Containers will use the current context. ## Converting an existing or pre-defined devcontainer.json diff --git a/remote/advancedcontainers/use-docker-kubernetes.md b/remote/advancedcontainers/use-docker-kubernetes.md index ab4a8356cf..81a9219ac8 100644 --- a/remote/advancedcontainers/use-docker-kubernetes.md +++ b/remote/advancedcontainers/use-docker-kubernetes.md @@ -11,7 +11,7 @@ DateApproved: 04/03/2025 While you can build, deploy, and debug your application inside a dev container, you may also need to test it by running it inside a set of production-like containers. Fortunately, by installing the needed Docker or Kubernetes CLIs and mounting your local Docker socket, you can build and deploy your app's container images from inside your dev container. -Once the needed CLIs are in place, you can also work with the appropriate container cluster using the [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) extension or the [Kubernetes](https://marketplace.visualstudio.com/items?itemName=ms-kubernetes-tools.vscode-kubernetes-tools) extension. +Once the needed CLIs are in place, you can also work with the appropriate container cluster using the [Container Tools](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers) extension or the [Kubernetes](https://marketplace.visualstudio.com/items?itemName=ms-kubernetes-tools.vscode-kubernetes-tools) extension. See the following example Dev Container Templates for additional information on a specific scenario. To add them to your project, **open the folder** you want to work with in VS Code and run the **Dev Containers: Add Dev Container Configuration Files...** command in the Command Palette (`kbstyle(F1)`).