Dev Containers in VS Code allow you to use a container like Docker as a full-featured development environment, meaning you define tools, runtimes, and dependencies in a container instead of installing them locally; 1. You configure the environment using a devcontainer.json file that specifies the container image, extensions, mounted files, ports, and environment variables; 2. By clicking "Reopen in Container", VS Code launches the container and connects to it, letting you edit, run, and debug code inside the container while using your local interface; 3. Benefits include consistency across teams, isolation from local system conflicts, no manual setup for new contributors, and alignment with production environments; 4. Common use cases are complex project setups, open-source contributions, learning in clean environments, and enforcing coding standards; 5. Setup involves installing Docker and the Dev Containers extension, adding a devcontainer.json or Dockerfile configuration, and reopening the project in the container—resulting in a portable, repeatable dev environment where you code locally but run in a container seamlessly.
Dev Containers in VS Code let you use a container (like Docker) as a full-featured development environment. Instead of setting up tools, runtimes, and dependencies on your local machine, you can define everything in a container, and VS Code connects to it—giving you a consistent, isolated, and reproducible dev setup.

Think of it as "your dev environment in a box" that works the same across different machines and teams.
How Dev Containers Work
With Dev Containers, you define a development environment using a devcontainer.json
file in your project. This file tells VS Code:

- Which container image to use (e.g., Ubuntu with Node.js and Python preinstalled)
- What additional tools or extensions to install
- How to mount your project files into the container
- Any ports to forward, environment variables, or startup commands
Once configured, you can "Reopen in Container" — VS Code will launch the container, attach to it, and let you edit, run, and debug code from inside it—while still using your local VS Code interface.
Key Benefits
- Consistency: Everyone on the team uses the exact same environment—no more "it works on my machine"
- Isolation: No conflicts between project dependencies (e.g., different Python or Node versions)
- No local setup: New contributors can get started with one click
- Use real dependencies: Test against exact databases, services, or OS versions used in production
Common Use Cases
- Working on projects with complex setup (e.g., Python PostgreSQL Redis)
- Contributing to open-source projects with specific tooling requirements
- Learning or testing in clean environments
- Enforcing coding standards with pre-installed linters and formatters
Basic Setup Example
- Install Docker and the Dev Containers extension in VS Code
- In your project, run "Add Development Container Configuration…" from the Command Palette
- Choose a predefined config (like Node.js, Python, etc.)
- Modify
.devcontainer/devcontainer.json
as needed - Click "Reopen in Container" — it builds the container and opens your project inside it
Under the hood, it typically uses:

{ "image": "node:18", "customizations": { "vscode": { "extensions": ["ms-vscode.vscode-node-debug2"] } } }
You can also use a Dockerfile
for more control:
{ "dockerFile": "Dockerfile", "context": ".", "mounts": [ "source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind" ] }
Bottom Line
Dev Containers make your development environment portable and repeatable. You write code in VS Code like normal, but all the execution happens in a container. It’s especially useful for teams, CI/CD alignment, and avoiding setup headaches.
Basically: code locally, run in a container. No fuss.
The above is the detailed content of What are dev containers in VSCode. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

There are three ways to change the default terminal in VSCode: setting through a graphical interface, editing settings.json file, and temporary switching. First, open the settings interface and search for "terminalintegratedshell" and select the terminal path of the corresponding system; secondly, advanced users can edit settings.json to add "terminal.integrated.shell.windows" or "terminal.integrated.shell.osx" fields and escape the path correctly; finally, you can enter "Terminal:SelectD through the command panel

The key steps in configuring the Java debugging environment on VSCode include: 1. Install JDK and verify; 2. Install JavaExtensionPack and DebuggerforJava plug-in; 3. Create and configure the launch.json file, specify mainClass and projectName; 4. Set up the correct project structure to ensure the source code path and compilation output are correct; 5. Use debugging techniques such as Watch, F8/F10/F11 shortcut keys and methods to deal with common problems such as class not found or JVM attachment failure.

1. Confirm whether the command is installed 2. Check the terminal shell type 3. Update the PATH environment variable 4. Restart VSCode or terminal. When you enter a command in the VSCode terminal, you should first check whether the command has been installed correctly and can be verified through other terminals of the system; secondly, confirm the shell type used by VSCode and check its configuration file; then make sure that the path where the command is located has been added to the PATH environment variable, and manually add and reload the configuration if necessary; finally close and reopen the terminal or restart VSCode to make the changes take effect.

TosyncVSCodesettingsacrossdevices,signinwithaGitHuborMicrosoftaccount,customizewhatgetssynced,andmanuallytriggersyncwhenneeded.First,openVSCodeandsigninviatheprofileiconorCommandPaletteusing"Sync:TurnonSync".Next,choosewhattosyncsuchassetti

When the "Timedoutwaitingforthedebuggertoattach" issue occurs, it is usually because the connection is not established correctly in the debugging process. 1. Check whether the launch.json configuration is correct, ensure that the request type is launch or attach and there is no spelling error; 2. Confirm whether the debugger is waiting for the debugger to connect, and add debugpy.wait_for_attach() and other mechanisms; 3. Check whether the port is occupied or firewall restricted, and replace the port or close the occupied process if necessary; 4. Confirm that the port mapping and access permissions are configured correctly in a remote or container environment; 5. Update VSCode, plug-in and debug library versions to solve potential

Yes,VSCodecanautomaticallysavefiles.Toenableauto-save,gotoFile>AutoSave(Windows/Linux)orCode>AutoSave(macOS),andcheckthebox.Youcanalsosetittosaveonfocuschangebyadding"files.autoSave":"onFocusChange"tosettings.json.Formorecon

VSCode workspace is a .code-workspace file that saves project-specific configurations. 1. It supports multi-root directory, debug configuration, shortcut key settings and extension recommendations, and is suitable for managing different needs of multiple projects. 2. The main scenarios include multi-project collaboration, customized development environment and team sharing configuration. 3. The creation method is to save the configuration through the menu File>SaveWorkspaceAs.... 4. Notes include distinguishing between .code-workspace and .vscode/settings.json, using relative paths, and avoiding storing sensitive information.

There are two ways to set environment variables for VSCode terminals on Linux: one is to use the terminal.integrated.env.linux configuration item to define variables that are only used by VSCode; the other is to modify the shell configuration file to take effect globally. 1. In VSCode, add variables such as "MY_VAR":"my_value" by setting the terminal.integrated.env.linux field. This method only affects the VSCode terminal; 2. Modify shell configuration files such as ~/.bashrc or ~/.zshrc and add exportMY
