-
[Visual Studio] 2. Docker 기반 .NET 개발환경 쉽게 구축하기 - MSSQL 연동환경 구축 - part 1.NET/개발환경 및 Tools 2021. 2. 24. 21:11반응형
지난시간엔 도커 컨테이너 안에서 동작하는 Dotnet 콘솔프로그램 개발환경을 생성했다.
이번엔 Docker DB Image를 컨테이너로 추가하여 연동하는 작업을 진행해보겠다.
1. 컨테이너 오케스트레이터 지원 선택
지난 시간에 사용했던 프로젝트를 다시 열고, 프로젝트 컨텍스트 메뉴에서 "컨테이너 오케스트레이터 지원" 메뉴를 선택한다.
2. Docker Compose 선택
추가 메뉴에서 Docker Compose를 선택한다.
이어서 나오는 메뉴에 지난시간에 보았던 Docker 지원 옵션이 표시되는데 Linux를 선택하고 넘어간다.
확인하고나면 솔루션에 docker-compose 관련 파일이 생성된다.
3. docker-compose.yml 편집
docker-compose 파일을 열면 아래와 같은 내용이 표시된다.
* 프로젝트명이나 환경에 따라 차이가 있을 수 있다.
version: '3.4' services: dockerenvtest2: image: ${DOCKER_REGISTRY-}dockerenvtest2 build: context: . dockerfile: DockerEnvTest2/Dockerfile
DB 추가를 위해 아래와 같이 내용을 추가로 입력한다.
version: '3.4' services: dockerenvtest2: image: ${DOCKER_REGISTRY-}dockerenvtest2 build: context: . dockerfile: DockerEnvTest2/Dockerfile sql: image: mcr.microsoft.com/mssql/server:2019-latest container_name: sql-dev ports: - 2433:1433 environment: - 'SA_PASSWORD=yourStrong(!)Password' - 'ACCEPT_EULA=Y' - 'MSSQL_PID=Express'
yml 형식의 파일은 python 에서 탭(Tab)을 통해 영역을 구분하는 것 처럼 띄어쓰기로 영역을 구분해야 한다. compose 파일에는 sql이란 이름의 서비스를 명세했으며, 작성된 각 옵션은 아래와 같다.
- image : 도커 이미지를 의미한다. 이미지는 직접 만들거나 https://hub.docker.com를 통해 배포한 이미지를 찾아 설정할 수 있다. 예제의 이미지는 MS SQL Server Linux 버전이며, 아래 링크를 통해 확인할 수 있다.
(https://hub.docker.com/_/microsoft-mssql-server?tab=description) - container_name: 배포시 컨테이너 이름을 지정한다.
- ports: DB연결정보를 입력한다. 컨테이너 내부에서만 사용한다면 필요없지만, host OS에서 연결하기위해선 설정해줘야 한다. 예시의 2433이 Host OS와 연결하는 외부포트이며, 1433이 컨테이너 내부에서 사용하는 포트이다.
SQL Server는 기본연결 포트가 1433이기 때문에 특별한 경우가 아니라면 내부포트번호는 1433으로 고정이다.
* 만약 2433 포트를 이미 사용중이라면 다른 포트로 설정해야 한다. - environment: 컨테이너에 대한 환경설정을 다룬다. 컨테이너마다 필요한 개별 설정값을 지원하기위한 옵션이다.
- SA_PASSWORD : sa 계정 비밀번호를 설정한다.
- ACCEPT_EULA : SQL 서버 사용 라이선스 동의여부를 설정한다.
- MSSQL_PID : SQL 에디션을 선택한다. Express는 제한된 용도내 무료로 사용가능한 MSSQL 서버 경량버전이다.
이 외에도 다양한 옵션이 존재하지만 Docker가 주요 주제가 아니므로 여기까지만 다루겠다.
파일 수정 후 저장하면 Visual Studio에서 관련 docker 명령어가 자동실행되며, 완료 후엔 대시보드에서 하나로 묶인 컨테이너를 확인할 수 있다.
4. DB 접속 확인
설정이 모두 완료되었다. 4번째 단계는 접속이 정상적으로 되는지 확인하는 단계이며, 개발 환경에 따라 선택해서 확인하기 바란다.
4-1. Management Studio에서 DB 접속 확인
컨테이너가 동작되는 것을 확인했으니, DB 연결을 수행해보겠다. MSSQL Management Studio를 연 뒤, 서버 이름은 "localhost,2433", 로그인 계정은 "sa", 암호는 docker-compose 파일에 입력했던 비밀번호인 "yourStrong(!)Password"를 입력한 뒤 연결버튼을 누른다.
* 가급적 SQL Server와 Management Studio 버전을 맞춰주는 것이 좋다. 예시의 SQL Server 도커 이미지 버전이 2019 이므로, Management Studio도 2019 이상으로 사용해야 한다.
정상적으로 설정이 완료되었다면 DB에 연결된 개체 탐색기 모습이 보일 것이다.
컨테이너에 DB를 생성하는 별도의 작업을 수행하지 않았으므로 DB는 존재하지 않는다.
4-2. Visual Studio 에서 접속 확인
Visual Studio에서도 연결을 확인할 수 있다. [보기] 메뉴에서 서버탐색기를 찾아 선택한다.
표시된 서버 탐색기에서 데이터 연결을 마우스 오른쪽 버튼을 눌러, 컨텍스트 메뉴를 연 뒤, 연결 추가를 선택한다.
데이터 소스 선택에서 Microsoft SQL Server를 선택한다.
* 스크린샷에 표시된 데이터 소스 리스트는 환경에 따라 차이가 있을 수 있지만, 대게 Microsoft SQL Server는 기본적으로 존재한다.
연결 추가화면에서 서버 이름은 "localhost,2433", 사용자 이름은 "sa" 암호는 "yourStrong(!)Password"를 입력한 뒤, 하단에 "연결 테스트(T)" 버튼을 눌러 정상 연결되는지 확인한다.
정상설정 되었다면 연결테스트 성공메시지가 표시된다.
다음 시간엔 code를 수정하여 연결을 테스트 해보겠다.
반응형'.NET > 개발환경 및 Tools' 카테고리의 다른 글
[Visual Studio] 구 버전에서 생성한 ASP.NET 프로젝트가 VS2019에서 열리지 않는 현상 해결방법 (0) 2021.04.20 [Visual Studio] 2. Docker 기반 .NET 개발환경 쉽게 구축하기 - MSSQL 연동환경 구축 - part 2 (0) 2021.02.24 [Visual Studio] 1. Docker 기반 .NET 개발환경 쉽게 구축하기 - HelloWorld (0) 2021.02.24 [VSCode] WSL Ubuntu에서 ASP.NET Core 개발환경 세팅 (0) 2021.02.21 [Visual Studio] VS2017에서 Git 이 안될때 해결법 (3) 2017.03.12 - image : 도커 이미지를 의미한다. 이미지는 직접 만들거나 https://hub.docker.com를 통해 배포한 이미지를 찾아 설정할 수 있다. 예제의 이미지는 MS SQL Server Linux 버전이며, 아래 링크를 통해 확인할 수 있다.