Docker内のSQL ServerにRESTORE DATABASE

dockerコマンドで、SQL Server のデータファイルを確認する。

docker exec -it docker-id /bin/bash
ls /var/opt/mssql/data/

docker内にバックアップファイルをコピーする。

docker cp xxx docker-id:/etc/xxx

バックアップファイルの確認

restore headeronly from DISK = '/etc/xxx';
restore filelistonly from DISK ='/etc/xxx' with file = 1;

上で出てきた要素に対してMOVEオプションを使って
SQL Server の、”異なる環境に’RESTORE DATABASE

restore database xxx from DISK ='/etc/xxx'
with move 'aaa' to '/var/opt/mssql/data/aaa.mdf',
move 'aaa_log' to '/var/opt/mssql/data/aaa.ldf';

Docker for Mac & SQL Server 2017 インストール

  1. docker for Macをダウンロード
    www.docker.com
  2. docker for Macをインストール
  3. docker for Macを起動し、メモリ割り当て変更。メモリは 4GBにする。
  4. SQL Server on Linux のイメージを Docker Hub からダウンロード
    docker pull microsoft/mssql-server-linux
    

    ダウンロード元のサイト

  5. コンテナを起動
    docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<*password*>' \
    -p 1433:1433 --name mssql \
    -d microsoft/mssql-server-linux:latest
    
  6. 動作確認
    sudo docker ps
    

    見えないときは ps -a で停止しているコンテナを表示

    docker ps -a
    

    [STATUS] 列が [Up]:正常、[STATUS] 列が [Exited]:エラー

  7. エラー時はログを確認
    docker logs XXXXXXXX
    
  8. ストップと再起動
    docker stop mssql
    docker rm mssql
    
  9. 手動でコンテナをスタート
    docker start **コンテナID**