Centos Docker 從零開始(2)之 mssql 的數據庫文件保存在主機

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/

這裏寫圖片描述

終於可以了…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章