Dev Containers over Tunnels documentation (#6706)
This commit is contained in:
Родитель
20bc5fe83d
Коммит
261642e361
|
@ -96,7 +96,7 @@ After Docker is installed and working on the remote machine, you can use VS Code
|
|||
|
||||
To use a Linux virtual machine running on your developer workstation, you should [install Docker](https://docs.docker.com/install/) on the VM in the same way as you would install it on a remote machine, and use the [VS Code Remote-SSH](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh) extension to connect to the VM.
|
||||
|
||||
Alternatively, you can install just the Docker CLI inside your development environment and point the CLI to the Docker host (engine) running on the developer workstation using the [Docker context mechanism](https://docs.docker.com/engine/context/working-with-contexts/). The main concern with this approach is to ensure network connectivity from the VM to the Docker engine on the host, and to do so in a secure way. One option is to use [SSH tunneling](/docs/containers/ssh.md) to the developer workstation. Another option is to [have the Docker engine listen on an HTTPS port](https://docs.docker.com/engine/security/https/). You need to be proficient with SSH and public-key infrastructure (PKI) to use the host Docker engine from the Docker CLI running inside the VM. For most users, we recommend full Docker installation inside the virtual machine.
|
||||
Alternatively, you can install just the Docker CLI inside your development environment and point the CLI to the Docker host (engine) running on the developer workstation using the [Docker context mechanism](https://docs.docker.com/engine/context/working-with-contexts/). The main concern with this approach is to ensure network connectivity from the VM to the Docker engine on the host, and to do so in a secure way. One option is to use [SSH tunneling](/docs/containers/ssh.md) or [Remote - Tunnels](/docs/remote/tunnels.md) to the developer workstation. Another option is to [have the Docker engine listen on an HTTPS port](https://docs.docker.com/engine/security/https/). You need to be proficient with SSH and public-key infrastructure (PKI) to use the host Docker engine from the Docker CLI running inside the VM. For most users, we recommend full Docker installation inside the virtual machine.
|
||||
|
||||
## Debugging in a container
|
||||
|
||||
|
|
|
@ -167,6 +167,19 @@ To do so:
|
|||
|
||||
The rest of the Dev Containers quick start applies as-is. You can learn more about the [Remote - SSH extension in its documentation](/docs/remote/ssh.md). You can also see the [Develop on a remote Docker host](/remote/advancedcontainers/develop-remote-host.md) article for other options if this model does not meet your needs.
|
||||
|
||||
### Open a folder on a remote Tunnel host in a container
|
||||
|
||||
If you are using a Linux machine as a tunnel host, you can use the [Remote - Tunnels](/docs/remote/tunnels.md) and Dev Containers extensions together. You do not even need to have a Docker client installed locally. This is similar to the SSH host scenario above, but uses Remote - Tunnels instead.
|
||||
|
||||
To do so:
|
||||
|
||||
1. Follow the [Getting Started](/docs/remote/tunnels.md#getting-started) instructions for the Remote - Tunnels extension.
|
||||
1. [Install Docker](#installation) on your tunnel host. You do not need to install Docker locally.
|
||||
1. Follow the [steps](/docs/remote/tunnels.md#remote---tunnels-extension) for the Remote - Tunnels extension to connect to a tunnel host and open a folder there.
|
||||
1. Use the **Dev Containers: Reopen in Container** command from the Command Palette (`kbstyle(F1)`, `kb(workbench.action.showCommands)`).
|
||||
|
||||
The rest of the Dev Containers quick start applies as-is. You can learn more about the [Remote - Tunnels extension in its documentation](/docs/remote/tunnels.md). You can also see the [Develop on a remote Docker host](/remote/advancedcontainers/develop-remote-host.md) article for other options if this model does not meet your needs.
|
||||
|
||||
### Open an existing workspace in a container
|
||||
|
||||
You can also follow a similar process to open a [VS Code multi-root workspace](/docs/editor/multi-root-workspaces) in a **single container** if the workspace only **references relative paths to sub-folders of the folder the `.code-workspace` file is in (or the folder itself).**
|
||||
|
|
|
@ -37,7 +37,7 @@ A VS Code window can only connect to one window currently, but you can open a ne
|
|||
|
||||
## Can I work with containers on a remote host?
|
||||
|
||||
Yes, see the section on [opening a folder on a remote SSH host in a container](/docs/remote/ssh.md#open-a-folder-on-a-remote-ssh-host-in-a-container) for information.
|
||||
Yes, see the sections on [opening a folder on a remote SSH host](/docs/remote/ssh.md#open-a-folder-on-a-remote-ssh-host-in-a-container) or [Remote Tunnels host in a container](/docs/remote/tunnels.md#open-a-folder-on-a-remote-tunnels-host-in-a-container) for information.
|
||||
|
||||
## How can I build or deploy container images into my local Docker / Kubernetes install when working inside a container?
|
||||
|
||||
|
|
|
@ -110,7 +110,7 @@ If you are using a Linux or macOS SSH host, you can use the Remote - SSH and [De
|
|||
|
||||
To do so:
|
||||
|
||||
1. Follow the [installation](/docs/devcontainers/containers.md#installation) steps for the Dev Containers extension on your remote host.
|
||||
1. Follow the [installation](/docs/devcontainers/containers.md#installation) steps for installing Docker on your remote host and VS Code and the Dev Containers extension locally.
|
||||
1. **Optional:** Set up SSH [key based authentication](/docs/remote/troubleshooting.md#configuring-key-based-authentication) to the server so you do not need to enter your password multiple times.
|
||||
1. Follow the [quick start](#connect-to-a-remote-host) for the Remote - SSH extension to connect to a host and open a folder there.
|
||||
1. Use the **Dev Containers: Reopen in Container** command from the Command Palette (`kbstyle(F1)`, `kb(workbench.action.showCommands)`).
|
||||
|
|
|
@ -96,6 +96,18 @@ Like the other Remote Development extensions, the name of your remote machine wi
|
|||
|
||||
![VS Code remote indicator connected to a remote tunnel](images/vscode-server/remote-indicator-server.png)
|
||||
|
||||
### Open a folder on a Remote Tunnels host in a container
|
||||
|
||||
If you are using a Linux machine as a tunnel host, you can use the Remote - Tunnels and [Dev Containers](/docs/devcontainers/containers.md) extensions together to open a folder on your remote host inside of a container. You do not even need to have a Docker client installed locally.
|
||||
|
||||
To do so:
|
||||
|
||||
1. Follow the [installation](/docs/devcontainers/containers.md#installation) steps for installing Docker on your remote host and VS Code and the Dev Containers extension locally.
|
||||
1. Follow the [Getting Started](#getting-started) instructions for the Remote - Tunnels extension to set up a tunnel, connect to it and open a folder there.
|
||||
1. Use the **Dev Containers: Reopen in Container** command from the Command Palette (`kbstyle(F1)`, `kb(workbench.action.showCommands)`).
|
||||
|
||||
The rest of the [Dev Containers quick start](/docs/devcontainers/containers.md#quick-start-open-an-existing-folder-in-a-container) applies as-is. You can learn more about the [Dev Containers extension in its documentation](/docs/devcontainers/containers.md). You can also see the [Develop on a remote Docker host](/remote/advancedcontainers/develop-remote-host.md) article for other options if this model does not meet your needs.
|
||||
|
||||
## Common questions
|
||||
|
||||
### What is the relationship between the Remote Tunnels, VS Code Server, and Remote Development?
|
||||
|
|
|
@ -11,7 +11,7 @@ DateApproved: 9/7/2023
|
|||
|
||||
Sometimes you may want to use the Dev Containers extension to develop inside a container that sits on a remote server. Docker does **not** support mounting (binding) your local filesystem into a remote dev container, so Visual Studio Code's default `devcontainer.json` behavior to use your local source code will not work. While this is the default behavior, in this section we will cover connecting to a remote host so that you can either [use the Remote - SSH extension](/docs/remote/ssh.md) to open a folder on a remote host in a container, [attach to any running container](/docs/devcontainers/attach-container.md), or use a **local** `devcontainer.json` file as a way to configure, create, and connect to a remote dev container using a socket.
|
||||
|
||||
## Connect using the Remote - SSH extension (recommended)
|
||||
## Connect using the Remote - SSH extension
|
||||
|
||||
If you are using a Linux or macOS SSH host, you can use the [Remote - SSH](/docs/remote/ssh.md) and Dev Containers extensions together. You do not even need to have a Docker client installed locally. To do so:
|
||||
|
||||
|
@ -23,9 +23,20 @@ If you are using a Linux or macOS SSH host, you can use the [Remote - SSH](/docs
|
|||
|
||||
The rest of the Dev Containers quick start applies as-is. You can learn more about the [Remote - SSH extension in its documentation](/docs/remote/ssh.md).
|
||||
|
||||
### Connect using the Remote - Tunnels extension
|
||||
|
||||
If you are using a Linux machine as a tunnel host, you can use the [Remote - Tunnels](/docs/remote/tunnels.md) and Dev Containers extensions together. You do not even need to have a Docker client installed locally. This is similar to the SSH host scenario above, but uses Remote - Tunnels instead. To do so:
|
||||
|
||||
1. Follow the [Getting Started](/docs/remote/tunnels.md#getting-started) instructions for the Remote - Tunnels extension.
|
||||
1. [Install Docker](/docs/devcontainers/containers#installation) on your tunnel host. You do not need to install Docker locally.
|
||||
1. Follow the [steps](/docs/remote/tunnels.md#remote---tunnels-extension) for the Remote - Tunnels extension to connect to a tunnel host and open a folder there.
|
||||
1. Use the **Dev Containers: Reopen in Container** command from the Command Palette (`kbstyle(F1)`, `kb(workbench.action.showCommands)`).
|
||||
|
||||
The rest of the Dev Containers quick start applies as-is. You can learn more about the [Remote - Tunnels extension in its documentation](/docs/remote/tunnels.md).
|
||||
|
||||
## Connect using the Docker CLI
|
||||
|
||||
This model only requires that a Docker Engine be running on a remote host that your local Docker CLI can connect to. While using the Remote - SSH extension is easier and doesn't require the Docker CLI to even be installed locally, this model can be useful for situations where you already have a host you are connecting to from the command line. This approach is also useful if you are looking to attach to already running containers on this remote server.
|
||||
This model only requires that a Docker Engine be running on a remote host that your local Docker CLI can connect to. While using the Remote - SSH and Remote - Tunnels extensions is easier and doesn't require the Docker CLI to even be installed locally, this model can be useful for situations where you already have a host you are connecting to from the command line. This approach is also useful if you are looking to attach to already running containers on this remote server.
|
||||
|
||||
### A basic remote example
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче