컨테이너 창 사용

컨테이너 창을 사용하여 앱을 호스트하는 컨테이너 내에서 수행되는 작업을 살펴볼 수 있습니다. 명령 프롬프트에서 Docker 명령을 실행하여 컨테이너에서 수행되는 작업을 살펴보고 진단하는 데 익숙한 경우, 이 창에서 제공하는 보다 편리한 방법으로 Visual Studio IDE 내에서 컨테이너를 모니터링할 수 있습니다.

컨테이너 창을 사용하여 컨테이너 이미지에 대한 정보를 볼 수도 있습니다.

필수 조건

컨테이너에 대한 정보 보기

컨테이너화된 .NET 프로젝트를 시작하면 컨테이너 창이 자동으로 열립니다. 언제든지 Visual Studio에서 컨테이너를 보려면 Ctrl+Q를 사용하여 Visual Studio 검색 상자를 활성화하고 Containers를 입력한 다음, 첫 번째 항목을 선택합니다. 주 메뉴에서 컨테이너 창을 열 수도 있습니다. 보기>다른 창>컨테이너 메뉴 경로를 사용합니다.

왼쪽 창에는 컨테이너가 선택되고 있고 오른쪽 창에는 환경 탭이 선택되어 있는 Visual Studio의 컨테이너 창 스크린샷

왼쪽 창에는 컨테이너가 선택되고 있고 오른쪽 창에는 환경 탭이 선택되어 있는 Visual Studio의 컨테이너 창 스크린샷

왼쪽에는 로컬 컴퓨터의 컨테이너 목록이 표시됩니다. 솔루션과 연결된 컨테이너는 솔루션 컨테이너 아래에 표시됩니다. 오른쪽에는 환경, 레이블, 포트, 볼륨, 로그, 파일 탭이 포함된 창이 표시됩니다.

컨테이너 도구 창이 Visual Studio에서 도킹되는 위치를 쉽게 사용자 지정할 수 있습니다. Visual Studio에서 창 레이아웃 사용자 지정을 참조하세요. 기본적으로 컨테이너 창은 디버거가 실행 중일 때 조사식 창에 도킹됩니다.

Docker Compose 및 Visual Studio 2022 버전 17.7 이상을 사용하는 경우 솔루션 및 해당 Docker Compose 프로젝트에 대한 노드 트리가 표시되고 솔루션의 부모 노드와 각 프로젝트의 자식 노드가 표시됩니다.

컨테이너 창의 Docker Compose 노드를 보여 주는 스크린샷.

환경 변수 보기

환경 탭에는 컨테이너의 환경 변수가 표시됩니다. Dockerfile 또는 .env 파일 사용, Docker 명령을 사용하여 컨테이너를 시작할 때 -e 옵션 사용 등의 다양한 방법으로 앱의 컨테이너에 대해 이러한 변수를 설정할 수 있습니다.

컨테이너의 환경 변수를 보여 주는 Visual Studio의 컨테이너 창 스크린샷

컨테이너의 환경 변수를 보여 주는 Visual Studio의 컨테이너 창 스크린샷

참고

환경 변수의 변경 내용은 실시간으로 반영되지 않습니다. 또한 이 탭의 환경 변수는 컨테이너의 시스템 환경 변수이며, 앱의 로컬 사용자 환경 변수는 반영되지 않습니다.

레이블 보기

레이블 탭은 컨테이너의 레이블을 보여 줍니다. 레이블은 Docker 개체에 대해 사용자 지정 메타데이터를 설정하는 방법입니다. 일부 레이블은 Visual Studio에 의해 자동으로 설정됩니다.

레이블 탭을 보여 주는 Visual Studio의 컨테이너 창 스크린샷

레이블 탭을 보여 주는 Visual Studio의 컨테이너 창 스크린샷

포트 매핑 보기

포트 탭에서 컨테이너에 적용된 포트 매핑을 확인할 수 있습니다.

컨테이너 창의 포트 탭 스크린샷

컨테이너 창의 포트 탭 스크린샷

잘 알려진 포트가 연결되어 있으므로, 포트에 제공된 콘텐츠가 있을 경우 링크를 클릭하여 브라우저를 열 수 있습니다.

볼륨 보기

볼륨 탭은 컨테이너의 볼륨(탑재된 파일 시스템 노드)을 보여 줍니다.

컨테이너 창의 볼륨 탭 스크린샷

컨테이너 창의 볼륨 탭 스크린샷

로그 보기

로그 탭에는 docker logs 명령의 결과가 표시됩니다. 기본적으로 이 탭에는 컨테이너의 stdout 및 stderr 스트림이 표시되지만, 출력을 구성할 수 있습니다. 자세한 내용은 Docker 로깅을 참조하세요. 기본적으로 로그 탭은 로그를 스트리밍하지만 탭에서 스트림 버튼을 선택하여 일시 중지할 수 있습니다. 스트림을 다시 선택하면 스트리밍이 중단된 위치에서 다시 시작됩니다.

컨테이너 창의 로그 탭 스크린샷

컨테이너 창의 로그 탭 스크린샷

로그를 지우려면 로그 탭의 지우기 단추를 사용합니다. 모든 로그를 가져오려면 새로 고침 단추를 사용합니다.

참고

Visual Studio는 Windows 컨테이너 디버깅 없이 실행하면 자동으로 stdout 및 stderr을 출력 창으로 리디렉션하므로 Ctrl+F5를 사용하여 Visual Studio에서 시작된 Windows 컨테이너는 이 탭에 로그를 표시하지 않습니다. 출력 창을 대신 사용하세요.

Visual Studio 2022 버전 17.7 이상에서 Docker Compose를 사용하는 경우 각 컨테이너의 로그를 개별적으로 보거나 단일 출력 스트림으로 인터리브할 수 있습니다. 솔루션에 대한 부모 노드를 선택하면 모든 Compose 프로젝트에서 인터리브 로그가 표시됩니다. 각 줄의 첫 번째 열에는 해당 출력 줄을 생성한 컨테이너가 표시됩니다. 하나의 컨테이너에 대한 로그만 단독으로 보려면 해당 특정 프로젝트의 노드를 선택합니다.

컨테이너 창의 로그 탭에 있는 인터리브 로그를 보여 주는 스크린샷.

파일 시스템 보기

파일 탭에서 프로젝트가 포함된 앱 폴더를 비롯한 컨테이너의 파일 시스템을 볼 수 있습니다.

컨테이너 창의 파일 탭 스크린샷

컨테이너 창의 파일 탭 스크린샷

Visual Studio에서 파일을 열려면 파일을 찾아서 두 번 클릭하거나, 마우스 오른쪽 단추를 클릭하고 열기를 선택합니다. Visual Studio는 읽기 전용 모드로 파일을 엽니다.

Visual Studio에서 보기 위해 열린 파일 스크린샷

Visual Studio에서 보기 위해 열린 파일 스크린샷

파일 탭을 사용하여 IIS 로그와 같은 애플리케이션 로그, 구성 파일 및 컨테이너 파일 시스템에 있는 기타 콘텐츠 파일을 볼 수 있습니다.

Visual Studio 2022 버전 17.7 이상에서 .NET 8 이상을 대상으로 하는 경우 Dockerfile에는 일반 사용자 권한으로 앱을 실행하도록 지정하는 명령이 포함될 USER app 수 있습니다. 이 파일 탭은 이러한 사용 권한도 사용하므로 해당 폴더를 볼 수 있는 상승된 권한이 필요하도록 설정된 경우 일부 폴더를 볼 수 없습니다.

컨테이너 시작, 중지 및 제거

기본적으로 컨테이너 창에는 Docker에서 관리하는 머신의 모든 컨테이너가 표시됩니다. 도구 모음 단추를 사용하여 컨테이너를 시작 또는 중지하거나, 더 이상 필요하지 않은 컨테이너를 제거(삭제)할 수 있습니다. 이 목록은 컨테이너를 만들거나 제거할 때 동적으로 업데이트됩니다.

예를 들어 한 번에 두 개 이상을 제거하기 위해 여러 컨테이너를 선택하려면 Ctrl+클릭을 사용합니다. 10개가 넘는 컨테이너를 시작하려고 하면 이를 확인하라는 메시지가 표시됩니다. 원하는 경우 확인 메시지를 표시하지 않도록 설정할 수 있습니다.

실행 중인 컨테이너에서 터미널 창 열기

컨테이너 창의 터미널 창 열기 단추를 사용하여 컨테이너에서 터미널 창(명령 프롬프트 또는 대화형 셸)을 열 수 있습니다.

컨테이너 창의 터미널 창 열기 스크린샷

컨테이너 창의 터미널 창 열기 스크린샷

Windows 컨테이너의 경우 Windows 명령 프롬프트가 열립니다. Linux 컨테이너의 경우 bash 셸을 사용하여 창이 열립니다.

Bash 창 스크린샷.

Bash 창 스크린샷.

.NET 8을 대상으로 하는 경우 Dockerfile에서 명령을 지정할 USER app 수 있습니다. 즉, 앱이 상승된 권한이 아닌 일반 사용자 권한으로 실행됩니다. .NET 8 이상을 대상으로 하는 경우 Visual Studio에서 생성된 Dockerfile은 Visual Studio 2022 버전 17.7 이상에 포함됩니다. 터미널은 Dockerfile에 지정된 사용자(기본적으로 .NET 8 프로젝트의 app경우)로 열리거나 사용자가 지정되지 않은 경우 사용자로 root 실행됩니다.

일반적으로 터미널 창은 Visual Studio 외부에 별도의 창으로 열립니다. 명령줄 환경을 도킹 가능한 도구 창으로 Visual Studio IDE에 통합하려는 경우 Whack Whack Terminal을 설치할 수 있습니다.

프로세스에 디버거 연결

컨테이너 창 도구 모음의 프로세스에 연결 단추를 사용하여 컨테이너에서 실행 중인 프로세스에 디버거를 연결할 수 있습니다. 이 단추를 사용하면 프로세스에 연결 대화 상자가 나타나고 컨테이너에서 실행 중인 사용 가능한 프로세스를 표시합니다.

프로세스에 연결 대화 상자 스크린샷

프로세스에 연결 대화 상자 스크린샷

컨테이너의 관리되는 프로세스에 연결할 수 있습니다. 다른 컨테이너에서 프로세스를 찾으려면 찾기 단추를 사용하여 Docker 컨테이너 선택 대화 상자에서 다른 컨테이너를 선택합니다.

이미지 보기

컨테이너 창의 이미지 탭을 사용하여 로컬 컴퓨터에서 이미지를 볼 수도 있습니다. 외부 리포지토리에서 끌어온 이미지는 트리뷰에서 함께 그룹화됩니다.

컨테이너 이미지가 있는 컨테이너 창을 보여 주는 스크린샷

컨테이너 이미지가 있는 컨테이너 창을 보여 주는 스크린샷

이 창에는 이미지에 적용되는 탭, 즉 레이블세부 정보 탭만 있습니다. 세부 정보 탭은 JSON 형식의 이미지에 대한 구성 세부 정보를 보여 줍니다.

컨테이너 창의 이미지 > 세부 정보 탭을 보여 주는 스크린샷.

컨테이너 창의 이미지 > 세부 정보 탭을 보여 주는 스크린샷.

이미지를 제거하려면 트리뷰에서 이미지를 마우스 오른쪽 단추로 클릭하고 제거를 선택하거나 이미지를 선택한 후 도구 모음에서 제거 단추를 사용합니다.

컨테이너 및 이미지 정리

컨테이너 창 도구 모음에서 정리 단추를 사용하여 더 이상 사용하지 않는 컨테이너와 이미지를 쉽게 제거할 수 있습니다.

정리 단추를 보여 주는 스크린샷

정리 단추를 보여 주는 스크린샷

사용되지 않은 모든 컨테이너를 제거할지 확인하는 메시지가 표시됩니다.

이미지 탭을 선택하면 정리 단추에 모든 현수 이미지를 제거할지 묻는 메시지가 표시됩니다. 현수 이미지는 태그가 지정된 이미지와 더 이상 연결되지 않는 레이어의 이미지입니다. 이를 제거하면 디스크 공간을 절약하는 데 도움이 됩니다.

구성 옵션

컨테이너 및 이미지를 제거하거나 한 번에 10개가 넘는 컨테이너를 시작하는 등의 다양한 작업에 대해 확인 대화 상자를 구성할 수 있습니다. 대화 상자에서 확인란을 사용하여 각 메시지를 표시하지 않도록 설정할 수 있습니다. 도구>옵션>컨테이너 도구>컨테이너 도구 창에서 설정을 사용하여 해당 옵션을 사용하거나 사용하지 않도록 설정할 수도 있습니다. 컨테이너 도구 구성을 참조하세요.