docker-compose.yaml
version: '3.8'
services:
sql-server:
image: mcr.microsoft.com/mssql/server:2019-latest
container_name: sql-server-container
environment:
SA_PASSWORD: YourPassword123!
ACCEPT_EULA: Y
ports:
- "11433:1433"
networks:
- sql-net
volumes:
- sql-data:/var/opt/mssql
### 백업파일저장을위해 호스트의 저장위치(/BACKUP/mssql) 와 컨터이너 내부의 경로(/var/opt/mssql/backup) 연결 ########
### 호스트 저장위치의 저장권한확인필요( chmod 777 /BACKUP/mssql )
- /BACKUP/mssql:/var/opt/mssql/backup
restart: always
networks:
sql-net:
driver: bridge
volumes:
sql-data:
run.sh
docker-compose -f docker-compose.yaml -p sql-server up
backup.sh (DB백업 Script)
#!/bin/bash
# Docker 컨테이너 이름 또는 ID
container_name="bc9586e4629e"
# SQL Server 연결 정보 설정
server_name="localhost" # SQL Server 인스턴스 이름 또는 IP 주소(포트는 기본포트가 아니라도 상관없음)
database_name="TEST" # 백업할 데이터베이스 이름
backup_path="/var/opt/mssql/backup/" # 백업 파일을 저장할 경로
backup_filename="${database_name}_$(date +'%Y%m%d_%H%M%S').bak" # 백업 파일 이름
# SQL Server 백업 스크립트 실행
docker exec -it $container_name /opt/mssql-tools/bin/sqlcmd -S $server_name -d $database_name -U sa -P 'YourPassword123!' -Q "BACKUP DATABASE [$database_name] TO DISK='$backup_path/$backup_filename' WITH FORMAT, MEDIANAME='DatabaseBackup', NAME='Full Backup';"
if [ $? -eq 0 ]; then
echo "Backup completed successfully. Backup file: $backup_path/$backup_filename"
else
echo "Backup failed."
fi
'Tool > docker' 카테고리의 다른 글
docker / ubuntu / UTC / KST / 시간대역변경 (0) | 2024.03.08 |
---|---|
docker / container / export / import (0) | 2024.03.06 |
docker / portainer / 정의 / 특징 / 장단점 / 설치방법 (0) | 2024.02.19 |
docker / docker-compose / 정의 / 특징 / 장단점 / 설치방법 (0) | 2024.02.19 |
docker / 주요 명령어 (0) | 2024.02.19 |