Docker mmsql新建數據庫如果能夠把數據庫文件保存在主機上就好了,centos好像可以掛載的
docker 的 run 命令:
-v ~/nginx/www:/www :將主機中項目的目錄www掛載到容器的/www
準備命令一下:
docker run -e ‘ACCEPT_EULA=Y’ -e ‘MSSQL_SA_PASSWORD=asdf@#123’
-v /home/jieguone/data/sql/:/var/opt/mssql/data/data1/ -p 1401:1433 –name sql1 -d microsoft/mssql-server-linux
進入mmsql容器內看下:
docker exec -t -i sql1 /bin/bash
看下數據庫儲存的路徑:新建目錄 data1 作爲主機的掛載點吧:
cd /var/opt/mssql/data/
mkdir data1
退出容器內部:
exit
centos 創建主機存放數據的目錄:/home/jieguone/data/sql (自定義)
docker run -e ‘ACCEPT_EULA=Y’ -e ‘MSSQL_SA_PASSWORD=asdf@#123’
-v /home/jieguone/data/sql/:/var/opt/mssql/data/data1/ -p 1433:1433 –name sql2 -d microsoft/mssql-server-linux
加上開啓自啓動容器:
–restart參數
no - container不重啓
on-failure - container推出狀態非0時重啓
always - 始終重啓
docker run -e ‘ACCEPT_EULA=Y’ -e ‘MSSQL_SA_PASSWORD=asdf@#123’
-v /home/jieguone/data/sql/:/var/opt/mssql/data/data1/ -p 1433:1433 –name sql2
–restart always -d microsoft/mssql-server-linux
再創建一個容器試試 name sql2
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=asdf@#123' -v /home/jieguone/data/sql/:/var/opt/mssql/data/data1/ -p 1433:1433 --name sql2 --restart always -d microsoft/mssql-server-linux
創建成功:用MSSM連接數據庫
新建數據庫:
。。。沒權限
我百度我百度去:
要加上 –privileged=true
docker run -e ‘ACCEPT_EULA=Y’ -e ‘MSSQL_SA_PASSWORD=asdf@#123’ –privileged=true -v /home/jieguone/data/sql/:/var/opt/mssql/data/data1/ -p 1430:1433 –name sql4 –restart always -d microsoft/mssql-server-linux
記得 把其他的容器先刪除了:
docker rm -f 容器id(可以確定那個容器就行,沒必要打完整)
最終 docker run 命令行:
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=asdf@#123' --privileged=true -v /home/jieguone/data/sql/:/var/opt/mssql/data/data1/ -p 1433:1433 --name mssql --restart always -d microsoft/mssql-server-linux
用 mssm連接,創建數據庫測試
最後看下主機文件:
ls ./sql/
終於可以了…