Docker SQL Server 컨테이너 이미지에 데이터 베이스 백업 복원하기

Docker SQL Server 컨테이너 이미지에 데이터 베이스 백업 복원하기

다운로드

1
2
docker pull mcr.microsoft.com/mssql/server:2017-latest

실행

<YourStrong!Passw0rd> 이부분을 자기가 아는 패스워드로 바꾸면 된다.

1
2
3
4
5
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' \
--name 'sql1' -p 1401:1433 \
-v sql1data:/var/opt/mssql \
-d mcr.microsoft.com/mssql/server:2017-latest

1
sudo docker ps -a

그리고 일단 윈도우용 bak 파일을 복원 시킬때 정상적으로 동작하지 않았다.
그래서 mdf파일과 ldf을 직접 임포트 시킬려고 했다.

일단 데이터 베이스를 생성 시켰다. 내가 만들고자고 하는 파일을명을 데이터 베이스와 동일하기에 데이터 베이스를 먼저 만들었다.

1
CREATE DATABASE TEST

그런 다음 도커 컨테이너 파일에 가서 살펴 보면

1
docker exec -i -t sql1 /bin/bash

지금 로그인 하면 쉘로 들어가는데 아래의 커멘드를 입력해보면

1
2
cd /var/opt/mssql/data

해당 폴더에 아래의 파일들이 생겼을것이다.

1
2
TEST.mdf
TEST_log.ldf

그다음에 도커 정지

1
2
docker stop sql1

그 다음에 도커로 파일 복사

1
2
3
docker cp TEST.mdf sql1:/var/opt/mssql/data

docker cp TEST_log.ldf sql1:/var/opt/mssql/data

다시 실행

1
2
docker start sql1

삭제

1
2
3
4
docker stop sql1
docker rm sql1
docker rmi -f $(docker images -a -q)
docker volume rm $(docker volume ls -q)

참조