[Windows] Docker를 사용하여 호스트 환경을 더럽히지 않고 mssql-server-linux 사용
6891 단어 SQLServerdocker-compose도커Windows
TL;DR
참고로 한 사이트
Microsoft 공식 리포지토리의 컨테이너 샘플
htps : // 기주 b. 코 m / 미 c 로소 ft / sql - r ゔ ぇ r mp ぇ s / t 어 /
작성한 샘플 리포지토리
환경
파일
\---mssql-server-linux-sample
| .gitignore
| db-init.sh
| db-init.sql
| docker-compose.yml
| Dockerfile
| entrypoint.sh
|
\---backup
dbo.members.csv
Dockerfile
FROM microsoft/mssql-server-linux:2017-latest
COPY . /usr/src/docker
WORKDIR /usr/src/docker
RUN chmod +x ./db-init.sh
CMD /bin/bash ./entrypoint.sh
docker-compose.yml
version: "3"
services:
db:
build: ./
environment:
SA_PASSWORD: "MssqlPass123"
ACCEPT_EULA: "Y"
MSSQL_AGENT_ENABLED: "true"
ports:
- "1433:1433"
container_name: db1
hostname: db1
volumes:
- ms-sqlserver-linux-sample-data:/var/opt/mssql
- ./backup:/backup
volumes:
ms-sqlserver-linux-sample-data:
driver: local
※MSSQL_AGENT_ENABLED를 true로 하면 SQLServer가 떨어지지 않고 계속 기동한다
entrypoint.sh
#start SQL Server, start the script to create/setup the DB
./db-init.sh & /opt/mssql/bin/sqlservr
※, DB 초기화 스크립트와 SQLServer 기동을 실시
db-init.sh
#start SQL Server, start the script to create/setup the DB
#wait for the SQL Server to come up
sleep 10s
echo "running set up script"
#run the setup script to create the DB and the schema in the DB
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P MssqlPass123 -d master -i db-init.sql
db-init.sql
CREATE DATABASE testdb;
go
use testdb;
go
DROP TABLE IF EXISTS members;
GO
CREATE TABLE members(
id int identity(1,1) primary key,
name nvarchar(32),
birthday datetime
);
GO
BULK INSERT members
FROM '/usr/src/docker/backup/dbo.members.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
GO
※, DB 작성, 테이블 작성, 데이터 투입을 실시. 데이터는 볼륨에 등록되어 있습니다.
docker-compose 빌드
컨테이너 빌드 실시
docker-compose build
docker-compose 시작
빌드된 컨테이너를 백그라운드에서 시작
docker-compose up -d
docker-compose 종료
컨테이너 초기화 및 종료
docker-compose down
DB에 연결
※컨테이너가 기동중에 이하의 순서를 실시
1. SQL Server (mssql)를 Visual Studio 코드에 설치하면 사이드 바에 DB 아이콘이 표시되므로 선택
2. COONNECTIONS에 커서를 맞추면 「+」아이콘이 나오므로 누르기
3. servername:localhost
4. Database Name:testdb
5. SQL Login 선택
6. 사용자 이름: sa
7. 암호: MssqlPass123
8. Save Password: No
9. Display Name: 모든 이름
이제 DB에 연결할 수 있으므로 dbo.members를 선택하여 데이터가 등록되었는지 확인합니다.
이상
Reference
이 문제에 관하여([Windows] Docker를 사용하여 호스트 환경을 더럽히지 않고 mssql-server-linux 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MegaBlackLabel/items/e53cf5a7f6efea232328텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)