이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

컨테이너 도구 확장 사용자 지정

Container Tools 확장은 Docker 빌드실행 동작을 제어하기 위해 여러 Visual Studio Code 작업을 포함하며, 디버깅을 위한 컨테이너 시작의 기반이 됩니다.

작업을 통해 많은 제어 및 사용자 지정이 가능합니다. 최종 구성은 일반 기본값, 플랫폼별 기본값(예: Node.js, Python 또는 .NET) 및 사용자 입력의 조합입니다. 사용자 입력은 기본값과 충돌하는 경우 우선 적용됩니다.

Visual Studio Code 작업의 모든 일반적인 기능(예: 작업을 복합 작업으로 그룹화)은 Container Tools 확장 작업에서 지원됩니다. 일반적인 작업 기능 및 속성에 대한 자세한 내용은 Visual Studio Code 사용자 지정 작업 설명서를 참조하세요.

Docker 빌드 작업

docker-build 작업은 Docker 명령줄(CLI)을 사용하여 이미지를 빌드합니다. 이 작업은 단독으로 사용하거나, 컨테이너 내에서 애플리케이션을 실행/디버그하기 위한 작업 체인의 일부로 사용할 수 있습니다.

docker-build 작업의 가장 중요한 구성 설정은 dockerBuildplatform입니다.

  • dockerBuild 개체는 Docker 빌드 명령에 대한 매개변수를 지정합니다. 이 개체에서 지정된 값은 Docker 빌드 CLI 호출에 직접 적용됩니다.
  • platform 속성은 docker-build 작업이 Docker 빌드 기본값을 결정하는 방식을 변경하는 힌트입니다.

작업 속성 전체 목록은 속성 참조를 참조하세요.

플랫폼 지원

tasks.jsondocker-build 작업은 모든 이미지를 빌드하는 데 사용할 수 있지만, 확장은 Node.js, Python 및 .NET에 대한 명시적 지원(및 간소화된 구성)을 제공합니다.

Node.js (docker-build)

기본값을 사용한 최소 구성

특정 플랫폼 옵션이 없는 Node.js 기반 이미지는 platform 속성을 node로 설정하기만 하면 됩니다.

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Build Node Image",
      "type": "docker-build",
      "platform": "node"
    }
  ]
}

플랫폼 기본값

Node.js 기반 이미지의 경우 docker-build 작업은 다음 옵션을 추론합니다.

속성 추론된 값
dockerBuild.context package.json이 있는 디렉토리와 동일합니다.
dockerBuild.dockerfile package.json과 동일한 디렉토리의 Dockerfile 파일입니다.
dockerBuild.tag package.json의 애플리케이션 name 속성(정의된 경우)이거나, 그렇지 않으면 package.json이 있는 폴더의 기본 이름입니다.
dockerBuild.pull 빌드 전에 새 기본 이미지를 가져오기 위해 기본적으로 true입니다.

Python (docker-build)

기본값을 사용한 최소 구성

특정 플랫폼 옵션이 없는 Python 기반 이미지는 platform 속성을 python으로 설정하기만 하면 됩니다.

{
  "tasks": [
    {
      "type": "docker-build",
      "label": "docker-build",
      "platform": "python"
    }
  ]
}

플랫폼 기본값

Python 기반 이미지의 경우 docker-build 작업은 다음 옵션을 추론합니다.

속성 추론된 값
dockerBuild.context 기본 컨텍스트는 작업 영역 폴더입니다.
dockerBuild.dockerfile 기본 Dockerfile 경로는 작업 영역 폴더의 루트에 있습니다.
dockerBuild.tag 루트 작업 영역 폴더의 기본 이름입니다.
dockerBuild.pull 빌드 전에 새 기본 이미지를 가져오기 위해 기본적으로 true입니다.

.NET (docker-build)

기본값을 사용한 최소 구성

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

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Build Node Image",
      "type": "docker-build",
      "netCore": {
        "appProject": "${workspaceFolder}/project.csproj"
      }
    }
  ]
}

플랫폼 기본값

.NET 기반 이미지의 경우 docker-build 작업은 다음 옵션을 추론합니다.

속성 추론된 값
dockerBuild.context 루트 작업 영역 폴더입니다.
dockerBuild.dockerfile 루트 작업 영역 폴더의 Dockerfile 파일입니다.
dockerBuild.tag 루트 작업 영역 폴더의 기본 이름입니다.
dockerBuild.pull 빌드 전에 새 기본 이미지를 가져오기 위해 기본적으로 true입니다.

빌드 작업 참조

Here are all properties available for configuring docker-build task. All properties are optional unless indicated otherwise.

속성 설명
dockerBuild docker build 명령을 제어하는 옵션 (아래 참조).
platform이 설정되지 않은 경우 필수입니다.
platform 플랫폼: .NET(netcore) 또는 Node.js(node) 및 docker build 명령에 대한 기본 설정을 결정합니다.
node Node.js 프로젝트에 대한 옵션을 결정합니다 (아래 참조).
python docker-build 작업에 대한 Python 개체 속성은 없습니다.
netCore .NET 프로젝트에 대한 옵션을 결정합니다 (아래 참조).

dockerBuild 개체 속성

속성 설명 docker build CLI에 해당
context 빌드 컨텍스트의 경로입니다.
플랫폼에서 추론되지 않는 한 필수입니다.
PATH
dockerfile Dockerfile의 경로입니다.
플랫폼에서 추론되지 않는 한 필수입니다.
-f 또는 --file
tag 이미지에 적용된 태그입니다.
플랫폼에서 추론되지 않는 한 필수입니다.
-t 또는 --tag
buildArgs 명령줄에 적용된 빌드 인수입니다. 키-값 쌍 목록입니다. --build-arg
labels 이미지에 추가된 레이블입니다. 키-값 쌍 목록(JSON 개체)입니다.
여기에 지정된 레이블 외에도 com.microsoft.created-by 레이블이 visual-studio-code로 설정되어 이미지에 추가됩니다. 이 동작은 labels 개체의 includeDefaults 속성을 false로 설정하여 비활성화할 수 있습니다.
--label
target 빌드할 Dockerfile의 대상입니다. --target
pull 빌드 전에 새 기본 이미지를 가져올지 여부입니다. --pull
customOptions 컨텍스트 인수 앞에 추가할 추가 매개변수입니다. 다른 옵션과의 충돌을 해결하거나 이 옵션을 유효성 검사하려는 시도는 없습니다. (any)

node 개체 속성 (docker-build 작업)

속성 설명 기본값
package Dockerfile 및 docker-build 작업과 관련된 package.json 파일의 경로입니다. 루트 작업 영역 폴더의 package.json 파일입니다.

netCore 개체 속성 (docker-build 작업)

속성 설명
appProject Dockerfile 및 docker-build 작업과 관련된 .NET 프로젝트 파일(.csproj, .fsproj 등)입니다.
항상 필수입니다.

Docker 실행 작업

tasks.jsondocker-run 작업은 Docker 명령줄(CLI)을 사용하여 컨테이너를 만들고 시작합니다. 이 작업은 단독으로 사용하거나, 컨테이너 내에서 애플리케이션을 디버그하기 위한 작업 체인의 일부로 사용할 수 있습니다.

docker-run 작업의 가장 중요한 구성 설정은 dockerRunplatform입니다.

  • dockerRun 개체는 Docker 실행 명령에 대한 매개변수를 지정합니다. 이 개체에서 지정된 값은 Docker 실행 CLI 호출에 직접 적용됩니다.
  • platform 속성은 docker-run 작업이 Docker 실행 기본값을 결정하는 방식을 변경하는 힌트입니다.

작업 속성 전체 목록은 속성 참조를 참조하세요.

Docker 실행 플랫폼 지원

docker-run 작업은 모든 Docker 이미지를 실행하는 데 사용할 수 있지만, 확장은 Node.js, Python 및 .NET에 대한 명시적 지원(및 간소화된 구성)을 제공합니다.

Node.js (docker-run)

기본값을 사용한 최소 구성

특정 플랫폼 옵션이 없는 Node.js 기반 이미지는 platform 속성을 node로 설정하기만 하면 됩니다.

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run Node Image",
      "node": "docker-run",
      "platform": "node"
    }
  ]
}

플랫폼 기본값

Node.js 기반 이미지의 경우 docker-run 작업은 다음 옵션을 추론합니다.

속성 추론된 값
dockerRun.command package.json의 npm start 스크립트(있는 경우)에서 생성되거나, 그렇지 않으면 package.jsonmain 속성에서 생성됩니다.
dockerRun.containerName 애플리케이션 패키지 이름에서 파생됩니다.
dockerRun.image 종속된 docker-build 작업의 태그(있는 경우)이거나, 애플리케이션 패키지 이름에서 파생되며, 이는 package.json 내의 name 속성 또는 해당 파일이 있는 폴더의 기본 이름에서 파생됩니다.

Python (docker-run)

Python 기반 이미지를 빌드할 때 platform 속성을 생략하고 python 개체만 설정할 수 있습니다(platformpython 개체가 있을 때 암시적으로 python으로 설정됨).

Django 앱의 최소 구성

{
  "type": "docker-run",
  "label": "docker-run: debug",
  "dependsOn": ["docker-build"],
  "python": {
    "args": ["runserver", "0.0.0.0:8000", "--nothreading", "--noreload"],
    "file": "path_to/manage.py"
  }
}

Flask 앱의 최소 구성

{
  "type": "docker-run",
  "label": "docker-run: debug",
  "dependsOn": ["docker-build"],
  "dockerRun": {
    "env": {
      "FLASK_APP": "path_to/flask_entry_point.py"
    }
  },
  "python": {
    "args": ["run", "--no-debugger", "--no-reload", "--host", "0.0.0.0", "--port", "5000"],
    "module": "flask"
  }
}

일반 앱의 최소 구성

{
  "type": "docker-run",
  "label": "docker-run: debug",
  "dependsOn": ["docker-build"],
  "python": {
    "file": "path_to/app_entry_point.py"
  }
}

플랫폼 기본값

Python 기반 이미지의 경우 docker-run 작업은 다음 옵션을 추론합니다.

속성 추론된 값
dockerRun.command Python 개체에 의해 생성되며 Python 디버거에서 호출됩니다.
dockerRun.containerName 루트 작업 영역 폴더의 기본 이름에서 파생됩니다.
dockerRun.image 종속된 docker-build 작업의 태그(있는 경우)이거나, 루트 작업 영역 폴더의 기본 이름에서 파생됩니다.

.NET (docker-run)

기본값을 사용한 최소 구성

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

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run .NET Core Image",
      "type": "docker-run",
      "netCore": {
        "appProject": "${workspaceFolder}/project.csproj"
      }
    }
  ]
}

플랫폼 기본값

.NET 기반 이미지의 경우 docker-run 작업은 다음 옵션을 추론합니다.

속성 추론된 값
dockerRun.containerName 루트 작업 영역 폴더의 기본 이름에서 파생됩니다.
dockerRun.env 필수 환경 변수 ASPNETCORE_ENVIRONMENT, ASPNETCORE_URLSDOTNET_USE_POLLING_FILE_WATCHER를 추가합니다.
dockerRun.image 종속된 docker-build 작업의 태그(있는 경우)이거나, 루트 작업 영역 폴더의 기본 이름에서 파생됩니다.
dockerRun.os Linux
dockerRun.volumes 필수 볼륨을 추가합니다: 로컬 애플리케이션 폴더, 소스 폴더, 디버거 폴더, NuGet 패키지 폴더 및 NuGet 대체 폴더.

실행 작업 참조

Here are all properties available for configuring docker-run task. All properties are optional unless indicated otherwise.

속성 설명
dockerRun docker run 명령을 제어하는 옵션 (아래 참조).
platform이 설정되지 않은 경우 필수입니다.
platform 플랫폼: .NET(netcore) 또는 Node.js(node) 및 docker run 명령에 대한 기본 설정을 결정합니다.
node Node.js 프로젝트의 경우 다양한 옵션을 제어합니다 (아래 참조).
python Python 프로젝트의 경우 다양한 옵션을 제어합니다 (아래 참조).
netCore .NET 프로젝트의 경우 다양한 옵션을 제어합니다 (아래 참조).

dockerRun 개체 속성

속성 설명 CLI에 해당
image 실행할 이미지의 이름(태그)입니다.
플랫폼에서 추론되지 않는 한 필수입니다.
IMAGE
command 컨테이너 시작 시 실행할 명령입니다.
플랫폼에서 추론되지 않는 한 필수입니다.
COMMAND [ARG...]
containerName 시작된 컨테이너에 지정된 이름입니다.
플랫폼에서 추론되지 않는 한 필수입니다.
--name
env 컨테이너에서 설정된 환경 변수입니다. 키-값 쌍 목록입니다. -e 또는 --env
envFiles .env 파일 목록입니다. --env-file
labels 시작된 컨테이너에 지정된 레이블입니다. 키-값 쌍 목록입니다. --label
network 컨테이너가 연결될 네트워크의 이름입니다. --network
networkAlias 시작된 컨테이너의 네트워크 범위 별칭입니다. --network-alias
os 기본값은 Linux이며, 다른 옵션은 Windows입니다. 사용된 컨테이너 운영 체제입니다. N/A
ports 게시(맵핑)할 포트입니다. 컨테이너에서 호스트로 전송됩니다. 개체 목록입니다 (아래 참조). -p 또는 --publish
portsPublishAll Docker 이미지에서 노출된 모든 포트를 게시할지 여부입니다. 명시적으로 포트가 게시되지 않은 경우 기본값은 true입니다. -P
extraHosts DNS 해석을 위해 컨테이너에 추가할 호스트입니다. 개체 목록입니다 (아래 참조). --add-host
volumes 시작된 컨테이너에 맵핑할 볼륨입니다. 개체 목록입니다 (아래 참조). -v 또는 --volume
remove 컨테이너가 중지된 후 제거할지 여부입니다. --rm
customOptions 이미지 인수 앞에 추가할 추가 매개변수입니다. 다른 옵션과의 충돌을 해결하거나 이 옵션을 유효성 검사하려는 시도는 없습니다. (any)

ports 개체 속성

속성 설명 기본값
containerPort 컨테이너에 바인딩된 포트 번호입니다.
필수입니다.
hostPort 호스트에 바인딩된 포트 번호입니다. (Docker에서 무작위로 선택됨)
protocol 바인딩에 대한 프로토콜(tcp 또는 udp)입니다. tcp

extraHosts 개체 속성

속성 설명
hostname DNS 해석을 위한 호스트 이름입니다.
필수입니다.
ip 위 호스트 이름과 관련된 IP 주소입니다.
필수입니다.

volumes 개체 속성

속성 설명 기본값
localPath 맵핑될 로컬 머신의 경로입니다.
필수입니다.
containerPath 로컬 경로가 맵핑될 컨테이너 내의 경로입니다.
필수입니다.
permissions 컨테이너가 맵핑된 경로에 대해 갖는 권한입니다. ro(읽기 전용) 또는 rw(읽기-쓰기)일 수 있습니다. 컨테이너에 따라 다릅니다.

node 개체 속성 (docker-run 작업)

속성 설명 기본값
package docker-run 작업과 관련된 package.json 파일의 경로입니다. 루트 작업 영역 폴더의 package.json 파일입니다.
enableDebugging 컨테이너 내에서 디버깅을 활성화할지 여부입니다. false
inspectMode 애플리케이션과 디버거 간의 초기 상호 작용을 정의합니다(default 또는 break).
default 값은 디버거가 연결될 때까지 애플리케이션이 실행되도록 합니다.
break 값은 디버거가 연결될 때까지 애플리케이션이 실행되지 않도록 합니다.
default
inspectPort 디버깅이 발생해야 하는 포트입니다. 9229

python 개체 속성 (docker-run 작업)

속성 설명 기본값
args Python 앱에 전달된 인수입니다. 플랫폼에 따라 다릅니다. 스캐폴딩의 기본값은 에 표시됩니다.
debugPort 디버거가 수신 대기할 포트입니다. 5678
wait 디버거 연결을 기다릴지 여부입니다. true
module 실행할 Python 모듈입니다(모듈 **또는** 파일 중 하나만 선택해야 함).
file 실행할 Python 파일입니다(모듈 **또는** 파일 중 하나만 선택해야 함).

netCore 개체 속성 (docker-run 작업)

속성 설명
appProject docker-run 작업과 관련된 .NET 프로젝트 파일(.csproj, .fsproj 등)입니다.
필수입니다.
configureSsl ASP.NET Core SSL 인증서 및 기타 설정을 구성하여 컨테이너 내 서비스의 SSL을 활성화할지 여부입니다.
enableDebugging 시작된 컨테이너를 디버깅용으로 사용 설정할지 여부입니다. 이는 디버깅에 필요한 추가 볼륨 맵핑 및 기타 옵션을 추론합니다.

Docker Compose 작업

tasks.jsondocker-compose 작업은 Docker Compose 명령줄(CLI)을 사용하여 컨테이너를 만들고 시작합니다. 이 작업은 단독으로 사용하거나, 컨테이너 내에서 애플리케이션을 디버그하기 위한 작업 체인의 일부로 사용할 수 있습니다.

docker-compose 작업의 가장 중요한 구성 설정은 dockerCompose입니다.

  • dockerCompose 개체는 Docker Compose 명령에 대한 매개변수를 지정합니다. 이 개체에서 지정된 값은 Docker Compose CLI 호출에 직접 적용됩니다.

작업 속성 전체 목록은 속성 참조를 참조하세요.

예제 구성

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run docker-compose up",
      "type": "docker-compose",
      "dockerCompose": {
        "up": {
          "detached": true,
          "build": true,
          "services": ["myservice"]
        },
        "files": [
          "${workspaceFolder}/docker-compose.yml",
          "${workspaceFolder}/docker-compose.debug.yml"
        ]
      }
    }
  ]
}

Compose 작업 참조

Here are all properties available for configuring docker-compose task. All properties are optional unless indicated otherwise.

속성 설명
dockerCompose docker-compose 명령을 제어하는 옵션 (아래 참조).
필수입니다.

dockerCompose 개체 속성

속성 설명 CLI에 해당
up docker-compose up 명령을 실행합니다.
이것 또는 down이 지정되어야 하며, 둘 다 지정해서는 안 됩니다.
docker-compose up
down docker-compose down 명령을 실행합니다.
이것 또는 up이 지정되어야 하며, 둘 다 지정해서는 안 됩니다.
docker-compose down
files docker-compose 명령에서 사용할 Docker Compose YAML 파일 목록입니다. 지정하지 않으면 Docker Compose CLI는 docker-compose.ymldocker-compose.override.yml을 찾습니다. -f <file>
envFile 읽어서 컨테이너에 적용할 환경 변수 파일입니다. --env-file <file>
projectName Docker 개체의 이름과 레이블을 지정할 때 사용할 대체 프로젝트 이름입니다. Compose up 시 대체 프로젝트 이름을 사용하는 경우 Compose down 시에도 동일한 프로젝트 이름을 지정해야 합니다. --project-name <name>

up 개체 속성

속성 설명 CLI에 해당 기본값
detached 분리 모드로 실행할지 여부입니다. -d true
build 실행 전에 빌드할지 여부입니다. --build true
scale 실행할 각 서비스 인스턴스 수입니다. 키-값 쌍 목록입니다. --scale SERVICE=NUM
services 시작할 서비스의 하위 집합입니다. profiles와 결합할 수 없습니다. [SERVICE...] (all)
profiles 시작할 프로필의 하위 집합입니다. services와 결합할 수 없습니다. --profile <profile> (all)
customOptions up 인수 뒤에 추가할 추가 매개변수입니다. 다른 옵션과의 충돌을 해결하거나 이 옵션을 유효성 검사하려는 시도는 없습니다. (any)

down 개체 속성

속성 설명 CLI에 해당 기본값
removeImages 이미지, 그리고 어떤 이미지를 제거할지 여부입니다. all은 모든 서비스에서 사용된 이미지를 제거하고, local은 사용자 지정 태그가 없는 이미지만 제거합니다. 이 설정을 비워두면 이미지가 제거되지 않습니다. --rmi
removeVolumes 명명된 볼륨을 제거할지 여부입니다. -v false
customOptions down 인수 뒤에 추가할 추가 매개변수입니다. 다른 옵션과의 충돌을 해결하거나 이 옵션을 유효성 검사하려는 시도는 없습니다. (any)

명령 사용자 지정

컨테이너 도구 확장은 이미지를 빌드하고, 컨테이너를 실행하고, 컨테이너에 연결하고, 컨테이너 로그를 보는 등의 작업을 수행할 때 여러 Docker CLI 명령을 실행합니다. 이러한 명령 중 일부는 많은 선택적 인수를 가지고 있으며, 종종 매우 특정 시나리오에서 사용됩니다. 위의 Visual Studio Code 작업 대신, 작업이 사용되지 않을 때 여러 명령을 사용자 지정할 수 있습니다.

예를 들어, Compose Up 명령의 ${serviceList}${profileList} 토큰을 사용하면 Docker Compose YAML 파일의 하위 집합 서비스를 쉽게 시작할 수 있습니다.

이러한 사용자 지정 가능한 Docker 명령 각각에 대해, 실행할 템플릿을 설정하는 구성 설정이 있습니다. 또는 여러 템플릿을 정의할 수 있으며, 선택적으로 정규식을 사용하여 템플릿이 사용되어야 하는 컨텍스트를 힌트합니다. 템플릿은 launch.jsontasks.json과 유사한 일부 토큰을 지원합니다. 예를 들어, ${workspaceFolder}입니다.

설정 JSON 스키마

템플릿(아래에 나열됨) 각각을 구성하는 두 가지 옵션이 있습니다. 첫 번째 옵션은 기본 동작을 재정의하는 단일 템플릿입니다.

{
  "containers.commands.build": "docker build --rm -f \"${dockerfile}\" -t ${tag} \"${context}\""
}

두 번째 옵션은 match 정규식뿐만 아니라 사용자 입력에 따라 선택되는 여러 템플릿입니다.

예를 들어, 다음 예제에서는 세 개의 템플릿이 표시됩니다.

{
  "containers.commands.build": [
    {
      "label": "Default build command",
      "template": "docker build --rm -f \"${dockerfile}\" -t ${tag} \"${context}\""
    },
    {
      "label": "Alpine-specific build command",
      "template": "docker build -p 1234:1234 -f \"${dockerfile}\" -t ${tag} \"${context}\"",
      "match": "alpine"
    }
  ]
}

선택 동작

실행할 명령 템플릿은 다음 규칙에 따라 선택됩니다.

  1. 설정이 구성되지 않은 경우 기본 명령 템플릿이 선택됩니다.
  2. 단일 템플릿만 구성된 경우(위의 첫 번째 예제), 해당 템플릿이 선택됩니다.
  3. 여러 템플릿이 구성된 경우
    1. 제한된 템플릿을 확인합니다. 제한된 템플릿에는 match가 있습니다. match 정규식은 예를 들어 이미지 이름, 컨테이너 이름 등과 같은 컨텍스트 힌트와 비교됩니다.
    2. 여러 제한된 템플릿이 적용되는 경우 사용자에게 선택하라는 메시지가 표시됩니다. 하나만 적용되는 경우 사용자에게 메시지가 표시되지 않습니다.
    3. 적용 가능한 제한된 템플릿이 없는 경우, 제한되지 않은 템플릿을 확인합니다. 제한되지 않은 템플릿에는 match가 없으므로 항상 적용 가능합니다.
    4. 여러 제한되지 않은 템플릿이 적용되는 경우 사용자에게 선택하라는 메시지가 표시됩니다. 하나만 적용되는 경우 사용자에게 메시지가 표시되지 않습니다.

Docker 빌드

구성 설정 기본값
docker.commands.build ${containerCommand} build --rm -f "${dockerfile}" -t ${tag} "${context}"

지원되는 토큰

토큰 설명
${containerCommand} 컨테이너 명령을 실행하는 데 사용되는 CLI 명령/실행 파일입니다.
${dockerfile} 선택한 Dockerfile의 작업 영역 상대 경로입니다.
${tag} 빌드 명령을 호출할 때 사용자가 입력/확인한 값입니다. 이전에 빌드된 경우 해당 Dockerfile에 대해 이전에 입력한 값으로 기본 설정됩니다.
${context} 설정된 경우 containers.imageBuildContextPath 구성 설정의 값입니다. 그렇지 않으면 Dockerfile이 있는 작업 영역 상대 폴더입니다.

참고: containers.commands.build 설정에 ${tag} 토큰이 포함되지 않은 경우 사용자에게 태그를 입력/확인하라는 메시지가 표시되지 않습니다.

참고: match 정규식은 선택한 Dockerfile 이름과 작업 영역 폴더 이름과 비교됩니다.

Docker 실행

구성 설정 기본값
containers.commands.run ${containerCommand} run --rm -d ${exposedPorts} ${tag}
containers.commands.runInteractive ${containerCommand} run --rm -it ${exposedPorts} ${tag}

지원되는 토큰

토큰 설명
${containerCommand} 컨테이너 명령을 실행하는 데 사용되는 CLI 명령/실행 파일입니다.
${exposedPorts} 이미지의 노출된 포트 목록에서 생성됩니다(궁극적으로 Dockerfile에서). 각 노출된 포트는 로컬 머신의 동일한 포트로 맵핑됩니다. 예를 들어, "EXPOSE 5000 5001""-p 5000:5000 -p 5001:5001"을 생성합니다.
${tag} 선택한 이미지의 전체 태그입니다.

참고: match 정규식은 선택한 이미지의 전체 태그와 비교됩니다.

컨테이너 연결

구성 설정 기본값
containers.commands.attach ${containerCommand} exec -it ${containerId} ${shellCommand}

지원되는 토큰

토큰 설명
${containerCommand} 컨테이너 명령을 실행하는 데 사용되는 CLI 명령/실행 파일입니다.
${containerId} 연결할 컨테이너의 ID입니다.
${shellCommand} 컨테이너에 bash가 있는 경우 여기에 치환되고, 그렇지 않으면 sh입니다. Windows 컨테이너에서는 cmd가 항상 사용됩니다.

참고: match 정규식은 컨테이너 이름 및 컨테이너 이미지의 전체 태그와 비교됩니다.

컨테이너 로그

구성 설정 기본값
containers.commands.logs ${containerCommand} logs -f ${containerId}

지원되는 토큰

토큰 설명
${containerCommand} 컨테이너 명령을 실행하는 데 사용되는 CLI 명령/실행 파일입니다.
${containerId} 로그를 볼 컨테이너의 ID입니다.

참고: match 정규식은 컨테이너 이름 및 컨테이너 이미지의 전체 태그와 비교됩니다.

Docker Compose Up

구성 설정 기본값
containers.commands.composeUp ${composeCommand} ${configurationFile} up ${detached} ${build}

지원되는 토큰

토큰 설명
${configurationFile} 선택한 Docker Compose YAML 파일의 작업 영역 상대 경로에 -f를 더한 값으로 설정됩니다.
${detached} containers.composeDetached 설정이 true로 설정된 경우 -d로 설정됩니다. 그렇지 않으면 ""로 설정됩니다.
${build} containers.composeBuild 설정이 true로 설정된 경우 --build로 설정됩니다. 그렇지 않으면 ""로 설정됩니다.
${serviceList} 지정된 경우 명령이 실행될 때 시작할 서비스의 하위 집합을 묻습니다.
${profileList} 지정되고 Docker Compose YAML 파일에 프로필이 포함된 경우, 명령이 실행될 때 시작할 프로필의 하위 집합을 묻습니다.
${composeCommand} containers.composeCommand 설정이 설정된 경우 해당 값으로 설정됩니다. 그렇지 않으면 확장이 자동으로 사용할 명령(docker compose 또는 docker-compose)을 결정하려고 시도합니다.

Docker Compose Down

구성 설정 기본값
containers.commands.composeDown ${composeCommand} ${configurationFile} down

지원되는 토큰

토큰 설명
${configurationFile} 선택한 Docker Compose YAML 파일의 작업 영역 상대 경로에 -f를 더한 값으로 설정됩니다.
${composeCommand} containers.composeCommand 설정이 설정된 경우 해당 값으로 설정됩니다. 그렇지 않으면 확장이 자동으로 사용할 명령(docker compose 또는 docker-compose)을 결정하려고 시도합니다.

추가 지원 토큰

명령별 지원 토큰 외에도 다음 토큰이 모든 명령 템플릿에서 지원됩니다.

토큰 설명
${workspaceFolder} 선택한 작업 영역 폴더 경로입니다.
${config:some.setting.identifier} 문자열, 숫자 또는 부울인 모든 구성 설정의 값입니다. 이러한 설정 식별자는 임의로 정의될 수 있으며 Visual Studio Code 또는 확장에 속할 필요가 없습니다.
${env:Name} 환경 변수의 값입니다.
${command:commandID} 명령의 문자열 반환 값입니다.
© . This site is unofficial and not affiliated with Microsoft.