Как контейнеры разработчика vscode могут использовать отдельные среды docker-в-docker?

#visual-studio-code #docker-in-docker

Вопрос:

У меня есть 2 проекта, каждый из которых имеет свой собственный контейнер для разработчиков. Однако, когда я использую функцию «докер в докере«, похоже, что 2 контейнера разработчиков используют один и тот же экземпляр «докер в докере». Контейнеры, запущенные в контейнере разработки A, также видны в контейнере разработки B. Как настроить контейнеры разработчиков для использования отдельных сред docker в docker?

Мой разработчик.json:

 // For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.202.5/containers/dotnet
{
    "name": "C# (.NET)",
    "runArgs": ["--init"],
    "build": {
        "dockerfile": "Dockerfile",
        "args": { 
            // Update 'VARIANT' to pick a .NET Core version: 3.1, 5.0, 6.0
            // Append -bullseye or -focal to pin to an OS version.
            "VARIANT": "5.0-bullseye",
            // Options
            "NODE_VERSION": "none"
        }
    },

    // Set *default* container specific settings.json values on container create.
    "settings": {},

    // Add the IDs of extensions you want installed when the container is created.
    "extensions": [
        "ms-dotnettools.csharp",
        "jebbs.plantuml"
    ],

    // Use 'forwardPorts' to make a list of ports inside the container available locally.
    "forwardPorts": [5000, 5001, 8888],

    // [Optional] To reuse of your local HTTPS dev cert:
    //
    // 1. Export it locally using this command:
    //    * Windows PowerShell:
    //        dotnet dev-certs https --trust; dotnet dev-certs https -ep "$env:USERPROFILE/.aspnet/https/aspnetapp.pfx" -p "SecurePwdGoesHere"
    //    * macOS/Linux terminal:
    //        dotnet dev-certs https --trust; dotnet dev-certs https -ep "${HOME}/.aspnet/https/aspnetapp.pfx" -p "SecurePwdGoesHere"
    // 
    // 2. Uncomment these 'remoteEnv' lines:
    //    "remoteEnv": {
    //        "ASPNETCORE_Kestrel__Certificates__Default__Password": "SecurePwdGoesHere",
    //        "ASPNETCORE_Kestrel__Certificates__Default__Path": "/home/vscode/.aspnet/https/aspnetapp.pfx",
    //    },
    //
    // 3. Do one of the following depending on your scenario:
    //    * When using GitHub Codespaces and/or Remote - Containers:
    //      1. Start the container
    //      2. Drag ~/.aspnet/https/aspnetapp.pfx into the root of the file explorer
    //      3. Open a terminal in VS Code and run "mkdir -p /home/vscode/.aspnet/https amp;amp; mv aspnetapp.pfx /home/vscode/.aspnet/https"
    //
    //    * If only using Remote - Containers with a local container, uncomment this line instead:
    //      "mounts": [ "source=${env:HOME}${env:USERPROFILE}/.aspnet/https,target=/home/vscode/.aspnet/https,type=bind" ],

    // Use 'postCreateCommand' to run commands after the container is created.
    "postCreateCommand": "/bin/sh .devcontainer/scripts/post-create.sh",

    // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
    "remoteUser": "vscode",
    "features": {
        "git": "os-provided",
        "powershell": "7.1",
        "docker-in-docker": "latest",
        "sshd": "latest"
    }
}