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

실행 중인 컨테이너에 연결

Visual Studio Code는 컨테이너를 생성하고 시작할 수 있지만, 이는 사용자의 워크플로와 일치하지 않을 수 있습니다. 사용자는 이미 실행 중인 Docker 컨테이너에 VS Code를 "연결"하는 것을 선호할 수 있습니다. 연결된 후에는 devcontainer.json을 사용하여 폴더를 컨테이너에서 열 때와 마찬가지로 확장을 설치하고, 편집하고, 디버그할 수 있습니다.

Docker 컨테이너에 연결

Docker 컨테이너에 연결하려면 명령 팔레트(F1)에서 Dev Containers: Attach to Running Container...를 선택하거나, 활동 막대의 Remote Explorer를 사용하여 Containers 보기에서 연결하려는 컨테이너의 Attach to Container 인라인 작업을 선택하십시오.

Containers Explorer screenshot

참고: Alpine Linux 컨테이너를 사용할 때 일부 확장 프로그램은 네이티브 코드 내의 glibc 종속성으로 인해 작동하지 않을 수 있습니다.

연결된 컨테이너 구성 파일

VS Code는 특정 Docker 컨테이너에 반복적으로 연결할 때 설정을 신속하게 지원하기 위해 이미지 또는 컨테이너 이름 수준의 구성 파일을 지원합니다. 연결되면 폴더를 열거나, 확장을 설치하거나, 포트를 전달할 때마다 로컬 이미지별 구성 파일이 자동으로 업데이트되어 설정을 기억하므로 다시 연결할 때 모든 것이 올바른 위치로 돌아옵니다.

  • 기본적으로 이미지 수준 구성이 사용됩니다. 연결 후 이를 보거나 업데이트하려면 명령 팔레트(F1)에서 Dev Containers: Open Container Configuration File을 선택하십시오.

  • 구성을 컨테이너 이름에 연결하려면 연결 후 명령 팔레트(F1)에서 Dev Containers: Open Named Configuration File을 선택하십시오. 이 시점부터의 모든 업데이트는 이미지 수준이 아닌 이 이름 수준 구성에 적용됩니다.

이 두 파일 모두 devcontainer.json 속성의 하위 집합을 지원합니다.

{
  // Default path to open when attaching to a new container.
  "workspaceFolder": "/path/to/code/in/container/here",

  // Set *default* container specific settings.json values on container create.
  "settings": {
    "terminal.integrated.defaultProfile.linux": "bash"
  },

  // Add the IDs of extensions you want installed when the container is created.
  "extensions": ["dbaeumer.vscode-eslint"],

  // An array port numbers to forward
  "forwardPorts": [8000],

  // Container user VS Code should use when connecting
  "remoteUser": "vscode",

  // Set environment variables for VS Code and sub-processes
  "remoteEnv": { "MY_VARIABLE": "some-value" }
}

속성 및 사용 방법에 대한 전체 목록은 연결된 컨테이너 구성 참조를 참조하십시오.

저장되면 동일한 이미지/컨테이너 이름으로 컨테이너를 처음 열 때마다 이러한 속성이 환경을 구성하는 데 사용됩니다.

팁: 구성에 문제가 있는 경우 명령 팔레트(F1)에서 Dev Containers: Open Attached Container Configuration File...을 선택하고 표시된 목록에서 이미지/컨테이너 이름을 선택하여 컨테이너에 연결되어 있지 않을 때도 편집할 수 있습니다.

마지막으로, 연결하는 컨테이너에 관계없이 설치하려는 확장이 있는 경우 settings.json을 업데이트하여 항상 설치해야 하는 확장 목록을 지정할 수 있습니다.

연결된 컨테이너 구성 참조

연결된 컨테이너 구성 파일은 devcontainer.json과 유사하며 해당 속성의 하위 집합을 지원합니다.

속성 유형 설명
workspaceFolder 문자열 VS Code가 컨테이너에 연결할 때 열어야 하는 기본 경로를 설정합니다(소스 코드를 컨테이너에서 찾을 수 있는 볼륨 마운트 경로인 경우가 많음). 기본적으로 설정되지 않습니다(빈 창이 열림).
extensions 배열 컨테이너가 생성될 때 컨테이너 내에 설치해야 하는 확장 프로그램 ID의 배열입니다. 기본값은 []입니다.
settings 객체 컨테이너/머신별 설정 파일에 기본 settings.json 값을 추가합니다.
forwardPorts 배열 컨테이너 내부에서 로컬 머신으로 전달되어야 하는 포트 목록입니다.
portsAttributes 객체 포트 번호, "host:port" 값, 범위 또는 정규식을 기본 옵션 집합에 매핑하는 객체입니다. 사용 가능한 옵션은 포트 속성을 참조하십시오. 예:
"portsAttributes": {"3000": {"label": "Application port"}}
otherPortsAttributes 객체 portsAttributes를 사용하여 구성되지 않은 포트, 포트 범위 및 호스트에 대한 기본 옵션입니다. 사용 가능한 옵션은 포트 속성을 참조하십시오. 예:
"otherPortsAttributes": {"onAutoForward": "silent"}
remoteEnv 객체 VS Code(또는 터미널과 같은 하위 프로세스)에 대한 환경 변수를 설정하거나 재정의하지만 컨테이너 전체에는 영향을 미치지 않는 이름-값 쌍 집합입니다. 환경 변수 및 미리 정의된 변수는 값에서 참조될 수 있습니다.
예: "remoteEnv": { "PATH": "${containerEnv:PATH}:/some/other/path" }
remoteUser 문자열 VS Code가 컨테이너에서 실행되는 사용자(터미널, 작업 또는 디버깅과 같은 하위 프로세스 포함)를 재정의합니다. 기본적으로 컨테이너 전체가 실행되는 사용자(종종 root)입니다.
userEnvProbe 열거형 VS Code 또는 연결된 다른 도구의 프로세스에 포함될 사용자 환경 변수를 "프로브"하기 위해 사용할 셸 유형을 나타냅니다: none, interactiveShell, loginShell 또는 loginInteractiveShell(기본값). 사용되는 특정 셸은 사용자의 기본 셸(일반적으로 bash)을 기반으로 합니다. 예를 들어, bash 인터랙티브 셸은 일반적으로 /etc/bash.bashrc~/.bashrc에 설정된 변수를 포함하며, 로그인 셸은 일반적으로 /etc/profile~/.profile의 변수를 포함합니다. 이 속성을 loginInteractiveShell로 설정하면 네 개의 파일 모두에서 변수를 가져옵니다.
postAttachCommand 문자열,
배열
VS Code가 컨테이너에 연결된 후 실행할 명령 문자열 또는 명령 인수 목록입니다. 여러 명령을 실행하려면 문자열에 &&를 사용하십시오. 예: "yarn install" 또는 "apt-get update && apt-get install -y curl". 배열 구문 ["yarn", "install"]은 셸을 사용하지 않고 명령(이 경우 yarn)을 직접 호출합니다. 기본적으로 설정되지 않습니다.
배열 구문은 셸 없이 명령을 실행한다는 점에 유의하십시오. 문자열 대 배열 속성 서식 지정에 대해 자세히 알아보기 수 있습니다.

연결된 컨테이너 구성 파일의 변수

연결된 구성 파일의 특정 문자열 값에서 다음과 같은 형식으로 변수를 참조할 수 있습니다: ${variableName}. 다음 표는 사용할 수 있는 변수 목록입니다.

변수 속성 설명
${containerEnv:VAR_NAME} remoteEnv 컨테이너가 실행 중일 때 컨테이너 내의 기존 환경 변수(이 경우 VAR_NAME)의 값입니다. 예: "remoteEnv": { "PATH": "${containerEnv:PATH}:/some/other/path" }

Kubernetes 클러스터의 컨테이너에 연결

Kubernetes 클러스터의 컨테이너에 연결하려면 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))에서 Dev Containers: Attach to Running Kubernetes Container...를 선택하십시오. 또는 먼저 Kubernetes 확장kubectl과 Dev Containers 확장을 설치하십시오. 그런 다음 활동 막대에서 Kubernetes 탐색기를 선택하고 연결하려는 컨테이너가 있는 클러스터 및 Pod를 확장합니다. 마지막으로 컨테이너를 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 Attach Visual Studio Code를 선택하십시오.

참고: Kubernetes 클러스터의 컨테이너에 대해서는 연결된 컨테이너 구성 파일이 아직 지원되지 않습니다.

Attach to Kubernetes Container

다음 단계

© . This site is unofficial and not affiliated with Microsoft.