Dev Container FAQ
이 문서는 여러 환경에서 Dev Containers 확장 프로그램을 설정하고 실행하는 데 자주 발생하는 질문 중 일부를 다룹니다.
Dev Container 정의는 애플리케이션 배포 방식을 정의하나요?
아니요. 개발 컨테이너는 배포 준비가 되기 전에 애플리케이션을 개발할 환경을 정의합니다. 배포 및 개발 컨테이너는 유사해 보일 수 있지만, 개발 중에 사용하는 도구를 배포 이미지에 포함하고 싶지 않을 수 있습니다.
devcontainers/templates 리포지토리에는 일반적인 개발 환경에 대한 Dev Container 정의 세트가 포함되어 있습니다. 선호하는 경우, Dev Container 정의를 설정하지 않고 실행 중인 컨테이너에 연결할 수도 있습니다.
Dev Container 정의는 애플리케이션 빌드 방식을 정의하나요? Buildpack처럼요?
아니요. Buildpacks 개념은 소스 코드를 가져와 일련의 정의된 단계를 통해 배포 가능한 컨테이너 이미지를 생성하는 데 중점을 둡니다. Dev Container는 빌드 준비가 되기 전에 애플리케이션을 개발할 수 있는 환경입니다. 따라서 이들은 상호 보완적인 개념입니다.
로컬 파일 시스템을 컨테이너에 마운트하려고 할 때 오류가 발생합니다.
Docker 작업 표시줄 항목을 마우스 오른쪽 버튼으로 클릭합니다. Windows에서는 설정 메뉴 항목을 선택한 다음 리소스 > 파일 공유를 선택하고 소스 코드가 있는 드라이브를 확인합니다. macOS에서는 기본 설정 메뉴 항목을 선택한 다음 리소스 > 파일 공유를 선택하고 소스 코드가 포함된 폴더가 목록에 지정된 파일 경로 아래에 있는지 확인합니다.
일반적인 Docker for Windows 문제에 대한 해결 방법은 Docker Desktop for Windows 팁을 참조하세요.
라이브러리 또는 종속성이 누락되었다는 오류가 발생합니다.
일부 확장 프로그램은 특정 Docker 이미지에서 찾을 수 없는 라이브러리에 의존합니다. 예를 들어, Visual Studio Live Share는 시스템 수준 종속성의 설치가 필요하며, 이는 문서에 나열되어 있습니다. 이러한 종속성의 필요성은 Docker 이미지에서 사용되는 운영 체제(예: 특정 Linux 배포판)에 따라 달라질 수 있습니다. Dockerfile에 필요한 명령을 추가하여 Docker 빌드 프로세스 중에 이러한 종속성을 설치해야 할 수 있습니다. 특정 확장 프로그램의 설명서를 검색하여 종속성을 확인하고 문제를 해결하는 데 대한 도움은 추가 소프트웨어 설치를 참조하세요.
한 번에 여러 컨테이너에 연결할 수 있나요?
VS Code 창은 현재 한 번에 하나의 창에만 연결할 수 있지만, 새 창을 열고 이미 실행 중인 컨테이너에 연결하거나 여러 devcontainer.json 파일과 일반 Docker Compose 파일을 사용하여 프로세스를 좀 더 자동화할 수 있습니다.
원격 호스트의 컨테이너와 함께 작업할 수 있나요?
예, 원격 SSH 호스트의 폴더를 컨테이너에서 열거나 Remote Tunnels 호스트를 컨테이너에서 여는 섹션에서 정보를 참조하세요.
컨테이너 내에서 작업할 때 로컬 Docker / Kubernetes 설치로 컨테이너 이미지를 빌드하거나 배포하려면 어떻게 해야 하나요?
Docker 소켓을 포워딩하고 컨테이너에 Docker CLI(및 Kubernetes의 경우 kubectl)를 설치하여 이미지를 빌드하고 컨테이너를 배포할 수 있습니다. 자세한 내용은 Docker outside of Docker, Docker outside of Docker Compose 및 Kubernetes-Helm Dev Container 정의를 참조하세요.
컨테이너에서 실행될 때 VS Code Server의 연결 요구 사항은 무엇인가요?
VS Code Server 설치에는 로컬 머신이 다음으로의 아웃바운드 HTTPS(포트 443) 연결이 필요합니다.
update.code.visualstudio.comvscode.download.prss.microsoft.com
Dev Containers 확장 프로그램은 VS Code Server를 로컬로 다운로드하고 연결 시 컨테이너로 복사합니다.
확장 프로그램: VSIX에서 설치... 명령을 사용하여 인터넷 연결 없이 확장 프로그램을 수동으로 설치할 수 있지만, 확장 프로그램 패널이나 devcontainer.json을 사용하여 확장 프로그램을 설치하는 경우 로컬 머신과 VS Code Server는 다음으로의 아웃바운드 HTTPS(포트 443) 액세스 권한이 필요합니다.
marketplace.visualstudio.com*.gallerycdn.vsassets.io(Azure CDN)
마지막으로, 일부 확장(C# 등)은 download.microsoft.com 또는 download.visualstudio.microsoft.com에서 보조 종속성을 다운로드합니다. 다른 확장(예: Visual Studio Live Share)에는 추가적인 연결 요구 사항이 있을 수 있습니다. 문제가 발생하는 경우 확장 문서에서 자세한 내용을 확인하십시오.
VS Code Server는 컨테이너 내부의 임의 포트에서 실행되며 VS Code 자체는 Docker에서 구성한 통신 채널을 통해 VS Code Server와 통신하기 위해 docker exec를 사용합니다.
확장 프로그램 작성자로서 내 확장 프로그램이 작동하도록 하려면 무엇을 해야 하나요?
VS Code 확장 프로그램 API는 원격 실행의 대부분의 구현 세부 정보를 숨기므로 많은 확장 프로그램은 수정 없이 Dev Container 내에서 작동합니다. 그러나 모든 기능이 예상대로 작동하는지 확인하기 위해 Dev Container에서 확장 프로그램을 테스트하는 것이 좋습니다. 자세한 내용은 원격 개발 지원 문서를 참조하세요.
제 질문에 답할 수 있는 다른 자료가 있나요?
다음 문서는 질문에 대한 답변에 도움이 될 수 있습니다.
- 고급 컨테이너 구성 또는 팁 및 요령
- Dockerfile 참조
- Docker Compose 파일 참조
- Docker Desktop for Windows 문제 해결 가이드 및 FAQ
- Docker Desktop for Mac 문제 해결 가이드 및 FAQ
VS Code 외부에서 Dev Container를 사용할 수 있나요?
프로덕션 워크로드를 컨테이너화하는 것이 일반화됨에 따라 Dev Container는 VS Code 이상의 시나리오에도 유용해졌습니다. 모든 도구에서 일관된 개발 환경을 구성할 수 있도록 Development Container Specification을 만들고 있습니다. 이는 일반적인 개발 관련 설정, 도구 및 구성을 사용하여 기존 형식을 풍부하게 만드는 방법을 찾고, 동시에 단순화되고 오케스트레이션되지 않은 단일 컨테이너 옵션을 제공하여 코딩 환경 또는 지속적 통합 및 테스트에 사용할 수 있도록 합니다.
자세한 내용은 containers.dev에서 검토할 수 있으며, GitHub의 devcontainers/spec 리포지토리에서 진행 중인 제안을 검토하고 사양에 기여할 수 있습니다.