1.拉取鏡像 官方文檔參考 : https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?view=sql-server-2017&pivots=cs1-bash 執行命令 2.創建容器 掛載目錄 : 本 ...
1.拉取鏡像
執行命令
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
2.創建容器
掛載目錄 : 本地目錄 /work/mssql_data/ 容器目錄 /var/opt/mssql/data/db/ ,資料庫文件肯定是不能放在容器裡面的(你要是隨便玩玩就當我沒說),並且添加 privileged 參數給許可權(可能碰到無法創建資料庫提示)。
664c 是鏡像Id的前四位,拉取的版本不一樣鏡像Id也不一樣
//創建容器
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=12@@3456!@#$$zxc' --privileged=true -v /work/mssql_data/:/var/opt/mssql/data/db/ -p 1433:1433 --name mssql_2017v1 --restart always -d 644c
docker exec -it cfc6 /bin/bash 進入容器 cfc6是容器Id
3.創建資料庫
用mssql客戶端工具鏈接資料庫,如果連不上請檢查埠及防火牆。
創建資料庫手動選擇目錄會報錯找不到目錄,這個問題開始以為是目錄沒有掛載成功,最後手動填寫目錄創建成功!(這裡填寫的是容器內的路徑)
查看容器目錄文件和centos掛載的目錄文件,可以看到文件掛載目錄資料庫文件(ZoneTeach * )是存在的。
到這裡已經可以通過客戶端工具正常使用mssql2017
SQL Server Management Studio 客戶端地址:
4.相關參數
privileged 參數
啟用該參數,container內的root擁有真正的root許可權。
否則,container內的root只是外部的一個普通用戶許可權。
privileged啟動的容器,可以看到很多host上的設備,並且可以執行mount。
甚至允許你在docker容器中啟動docker容器。
restart 參數
Docker容器的重啟策略
no,預設策略,在容器退出時不重啟容器
on-failure,在容器非正常退出時(退出狀態非0),才會重啟容器
on-failure:3,在容器非正常退出時重啟容器,最多重啟3次
always,在容器退出時總是重啟容器
unless-stopped,在容器退出時總是重啟容器,但是不考慮在Docker守護進程啟動時就已經停止了的容器