You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ShortDescription: Remote Development with Visual Studio Code
@@ -57,14 +57,13 @@ But, it just wasn't right. It didn't make sense to do special work for every run
57
57
58
58
We convinced ourselves that what we needed was a way to run VS Code in two places at once, to run the developer tools locally and connect to a set of development services running remotely in the context of a physical or virtual machine (for example, a container or VM). This gives you a rich local development experience in the context of what is on the remote machine.
59
59
60
-

61
-
60
+

62
61
63
62
## Introducing the VS Code Remote Extensions
64
63
65
64
Over the past few months, we've been working hard re-establishing proper boundaries between our code layers and eliminating assumptions about the local development environment. We've built three new extensions for working with remote workspaces running in WSL, Docker containers, or in physical and virtual machines over SSH.
66
65
67
-

66
+

68
67
69
68
The **[Remote - WSL](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl)** extension lets you use the [Windows Subsystem for Linux (WSL)](https://docs.microsoft.com/en-us/windows/wsl) as a full development environment, right from VS Code. This new, optimized support lets you:
70
69
@@ -100,7 +99,7 @@ For more information, please see the [Developing using SSH](https://aka.ms/vscod
100
99
101
100
---
102
101
103
-
The **[Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)** extension lets you use a [Docker container](https://docker.com) as your [development container](https://aka.ms/vscode-remote/containers/folder-setup). Containers make a great development environments because:
102
+
The **[Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)** extension lets you use a [Docker container](https://docker.com) as your [development container](https://aka.ms/vscode-remote/containers/folder-setup). Containers make great development environments because:
104
103
105
104
* You can develop with a consistent and easily reproducible tool chain, on the same operating system you are deploying to.
106
105
* Containers are isolated, meaning you can quickly swap between different development environments without impacting your local machine.
Copy file name to clipboardExpand all lines: docs/remote/faq.md
+22-22Lines changed: 22 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ This article covers frequently asked questions for each of the Visual Studio Cod
15
15
16
16
### What is Visual Studio Code Remote Development?
17
17
18
-
The Visual Studio Code Remote Development extension pack allows you to open any folder in a container, on a remote machine (via SSH), or in the Windows Subsystem for Linux and take advantage of VS Code's full feature set. This means that VS Code can provide a local-quality development experience — including full IntelliSense (completions), debugging, and more — regardless of where your code is located or hosted.
18
+
The Visual Studio Code [Remote Development](https://aka.ms/vscode-remote/download/extension) extension pack allows you to open any folder in a container, on a remote machine (via SSH), or in the Windows Subsystem for Linux and take advantage of VS Code's full feature set. This means that VS Code can provide a local-quality development experience — including full IntelliSense (completions), debugging, and more — regardless of where your code is located or hosted.
19
19
20
20
### What advantages does VS Code Remote Development provide over local editing?
21
21
@@ -31,33 +31,33 @@ Compared to using a network share or synchronizing files, VS Code Remote Develop
31
31
32
32
### How do the Remote Development extensions work?
33
33
34
-
Visual Studio Code Remote Development allows your local VS Code installation to transparently interact with code and runtime environments sitting on other machines (whether virtual or physical) by moving the execution of certain commands to a "remote server". This "VS Code Server" is quickly installed by VS Code when you connect to a remote endpoint and can host extensions that interact directly with the remote workspace, machine, and file system.
34
+
Visual Studio Code Remote Development allows your local VS Code installation to transparently interact with source code and runtime environments on other machines (whether virtual or physical) by moving the execution of certain commands to a "remote server". The **VS Code Server** is quickly installed by VS Code when you connect to a remote endpoint and can host extensions that interact directly with the remote workspace, machine, and file system.
See [Supporting Remote Development](/api/advanced-topics/remote-extensions.md) for additional details.
38
+
See [Supporting Remote Development](/api/advanced-topics/remote-extensions.md) for additional details about extensions.
39
39
40
-
### How do the Remote Development extensions secure access to a remote machine / VM / container?
40
+
### How do the Remote Development extensions secure access to a remote machine, VM, or container?
41
41
42
42
Visual Studio Code Remote Development uses existing, well known transports like [secure shell](https://en.wikipedia.org/wiki/Secure_Shell) to authenticate and secure traffic. No ports need to be publicly opened beyond those used by these well-known, secure transports.
43
43
44
-
The VS Code Server that is injected runs as the same user you used to sign into the machine, ensuring that VS Code and its extensions are not given improper elevated access without permission. The server is started and stopped by VS Code and is not wired into any user / global login or startup scripts. VS Code manages its lifecycle so you do not need to worry about whether or not it is running.
44
+
The VS Code Server that is injected runs as the same user you used to sign into the machine, ensuring that VS Code and its extensions are not given improper elevated access without permission. The server is started and stopped by VS Code and is not wired into any user or global login or startup scripts. VS Code manages the server's lifecycle so you do not need to worry about whether or not it is running.
45
45
46
46
### Can the VS Code Server be installed or used on its own?
47
47
48
48
No. The VS Code Server is a component of the Remote Development extensions and is managed by a VS Code client. It is installed and updated automatically by VS Code when it connects to an endpoint and is not intended or [licensed](https://go.microsoft.com/fwlink/?linkid=2077057) for use by other clients.
49
49
50
50
### What are the connectivity requirements for VS Code Server?
51
51
52
-
The VS Code Server requires outbound HTTPS (port 443) connectivity to `update.code.visualstudio.com` and `marketplace.visualstudio.com`. All other communication between the server and the VS Code client is accomplished through...
52
+
The VS Code Server requires outbound HTTPS (port 443) connectivity to `update.code.visualstudio.com` and `marketplace.visualstudio.com`. All other communication between the server and the VS Code client is accomplished through the following transport channels depending on the extension:
53
53
54
54
* SSH: An authenticated, secure SSH tunnel.
55
55
* Containers: An authenticated, random port automatically exposed via the Docker CLI.
56
56
* WSL: An authenticated, random local TCP port.
57
57
58
-
### What Linux packages / libraries need to be installed on host to use Remote Development?
58
+
### What Linux packages or libraries need to be installed on a host to use Remote Development?
59
59
60
-
Most Linux distributions will not require additional dependency installation steps. For SSH, Linux hosts need to have Bash (`/bin/bash`), `tar`, and either `curl` or `wget` installed which could be missing from certain stripped down distributions. However,[Alpine Linux](https://alpinelinux.org) is currently not supported.
60
+
Most Linux distributions will not require additional dependency installation steps. For SSH, Linux hosts need to have Bash (`/bin/bash`), `tar`, and either `curl` or `wget` installed and those utilities could be missing from certain stripped down distributions. [Alpine Linux](https://alpinelinux.org) is currently not supported.
61
61
62
62
### Can the Docker extension run as a remote "workspace" extension?
63
63
@@ -71,25 +71,25 @@ The Docker extension is configured to run as a local "UI" extension by default.
71
71
72
72
### Can I install individual extensions instead of the extension pack?
73
73
74
-
Yes. The extensionpack provides a convenient way for you to access all of the latest remote capabilities as they are released. However, you can opt to install the individual extensions instead from the marketplace or VS Code extension panel.
74
+
Yes. The [Remote Development](https://aka.ms/vscode-remote/download/extension) extension pack provides a convenient way for you to access all of the latest remote capabilities as they are released. However, you can always install the individual extensions from the Marketplace or VS Code Extensions view.
### Are "dev container definitions" supposed to define how an application is deployed?
82
+
### Do "dev container definitions" define how an application is deployed?
83
83
84
-
No. A development container defines an environment in which you develop your application even before you are ready to build or deploy. While deployment and development containers may resemble one another, you often will not include tools in a deployment image that you will want during development.
84
+
No. A development container defines an environment in which you develop your application before you are ready to deploy. While deployment and development containers may resemble one another, you may not want to include tools in a deployment image that you use during development.
85
85
86
-
The [vscode-dev-containers repo](https://aka.ms/vscode-dev-containers) includes a set of dev container definitions for some common development environments. You can also [attach to a running container](/docs/remote/containers.md#attaching-to-running-containers) without setting up a dev container definition if you prefer to use an alternate container build or deployment workflow.
86
+
The [vscode-dev-containers repo](https://aka.ms/vscode-dev-containers) includes a set of dev container definitions for some common development environments. You can also [attach to a running container](/docs/remote/containers.md#attaching-to-running-containers) without setting up a dev container definition, if you prefer to use an alternate container build or deployment workflow.
87
87
88
-
### Are "dev containers definitions" intended to define how an application is built? Like Buildpacks?
88
+
### Do "dev containers definitions" define how an application is built? Like Buildpacks?
89
89
90
-
No. The [Buildpack](https://buildpacks.io/) concept focuses on taking source code and generating deployable container images through a series of defined steps. A dev container is an environment you can use to develop your application even before you are ready to build. They are therefore complementary concepts.
90
+
No. The [Buildpacks](https://buildpacks.io/) concept focuses on taking source code and generating deployable container images through a series of defined steps. A dev container is an environment in which you can develop your application before you are ready to build. They are therefore complementary concepts.
91
91
92
-
### Why do some commands invoked from the Docker Extension fail?
92
+
### Why do some commands invoked from the Docker extension fail?
93
93
94
94
Using the Docker extension from a VS Code window opened in a container has some limitations. Most containers do not have the Docker command line installed. Therefore commands invoked from the Docker extension that rely on the Docker command line, for example **Docker: Show Logs**, fail. If you need to execute these commands, open a new local window and use the Docker extension from this VS Code window or [set up Docker inside your container](https://aka.ms/vscode-remote/samples/docker-in-docker).
95
95
@@ -99,27 +99,27 @@ Using the Docker extension from a VS Code window opened in a container has some
99
99
100
100
The VS Code extension API abstracts away local/remote details so most extensions will work without modification. However, given extensions can use any node module or runtime they want, there are situations where adjustments may need to be made. We recommend you should test your extension (particularly in a container) to be sure that no updates are required. See [Supporting Remote Development](/api/advanced-topics/remote-extensions.md) for details.
101
101
102
-
### Can I give an extension access to local resources or APIs when a user is connected remotely?
102
+
### Can an extension access local resources or APIs when a user is connected remotely?
103
103
104
-
When VS Code connects to a remote environment, extensions are classified as either **UI** or **Workspace** extensions. UI Extensions run in a "local extension host", can contribute UI or personalization features (for example themes), and have access to local files or APIs. Workspace extensions run in a **remote extension host** with the workspace and have full access to the code, remote filesystem, and remote APIs. While they do not focus on personalization, they can contribute explorers, views, and other UI elements as well.
104
+
When VS Code connects to a remote environment, extensions are classified as either **UI** or **Workspace** extensions. UI Extensions run in a **local extension host**, can contribute UI or personalization features (for example themes), and have access to local files or APIs. Workspace extensions run in a **remote extension host** with the workspace and have full access to the source code, remote filesystem, and remote APIs. While Workspace extensions do not focus on UI customization, they can contribute explorers, views, and other UI elements as well.
105
105
106
-
When a user installs an extension, VS Code attempts to infer the correct location and install it based on its type. Extensions that do not need to run remotely like themes and other personalization are automatically installed on the UI side. All others are treated as Workspace extensions since they are the most full-featured. However, extension authors can also override this location with an `extensionKind` property in `package.json`.
106
+
When a user installs an extension, VS Code attempts to infer the correct location and install it based on its type. Extensions that do not need to run remotely like themes and other UI customizations are automatically installed on the UI side. All others are treated as Workspace extensions since they are the most full-featured. However, extension authors can also override this location with an `extensionKind` property in `package.json`.
107
107
108
108
See [Supporting Remote Development](/api/advanced-topics/remote-extensions.md)for additional details.
109
109
110
110
## License and privacy
111
111
112
112
### Location
113
113
114
-
You can find the licenses for the VS Code Remote Extensions here:
114
+
You can find the licenses for the VS Code Remote Development extensions here:
### Why aren't the Remote Extensions using the MIT License?
120
+
### Why aren't the Remote Development extensions using the MIT License?
121
121
122
-
The VS Code Remote Extensions are available under Microsoft pre-release licenses, similar to other service-based extensions such as [Visual Studio IntelliCode](https://marketplace.visualstudio.com/items/VisualStudioExptTeam.vscodeintellicode/license) and [Visual Studio Live Share](https://marketplace.visualstudio.com/items/MS-vsliveshare.vsliveshare-pack/license). A Microsoft license (instead of MIT, for example) makes it easier for us to license certain features of the product, such as access to the Visual Studio Marketplace (section 1.d), the re-licensing of third-party components (section 1.c), and telemetry data (section 4).
122
+
The VS Code Remote Development extensions are available under Microsoft pre-release licenses, similar to other service-based extensions such as [Visual Studio IntelliCode](https://marketplace.visualstudio.com/items/VisualStudioExptTeam.vscodeintellicode/license) and [Visual Studio Live Share](https://marketplace.visualstudio.com/items/MS-vsliveshare.vsliveshare-pack/license). A Microsoft license (instead of MIT, for example) makes it easier for us to license certain features of the product, such as access to the Visual Studio Marketplace (section 1.d), the re-licensing of third-party components (section 1.c), and telemetry data (section 4).
123
123
124
124
### Why aren't the Remote Development extensions or their components open source?
125
125
@@ -131,7 +131,7 @@ No, they will remain free of charge. In the future, we may provide "premium" dev
131
131
132
132
### Can I host the VS Code Server in my Service?
133
133
134
-
No. The extensions will automatically install the proper version of the server in the host (based on commit) so you cannot pre-install the server as they would quickly become out of sync with the extensions. Furthermore, the license states that you may not "provide the software as a stand-alone or integrated offering or combine it with any of your applications for others to use" which means you are not permitted to use the Remote Extensions with a hosted development offering. You are free to use the Remote Extensions with personal or work computers, internally hosted Virtual Machines, or Container instances as long as you do not expose the services as a publicly available development offering.
134
+
No. The extensions will automatically install the proper version of the server in the host (based on commit) so you cannot pre-install the server as it would quickly become out of sync with the extensions. Furthermore, the license states that you may not "provide the software as a stand-alone or integrated offering or combine it with any of your applications for others to use" which means you are not permitted to use the Remote Development extensions with a hosted development offering. You are free to use the Remote Development extensions with personal or work computers, internally hosted Virtual Machines, or Container instances as long as you do not expose the services as a publicly available development offering.
0 commit comments