使用Docker運行Microsoft SQL Server 2017

最近天天都在空閒時間努力編寫Apworks框架的案例代碼WeText。在文本發佈和處理微服務中,我打算使用微軟的SQL Server for Linux來作演示,因而也就在本身的docker-compose中加入了MS SQL Server的服務。其實在Docker中運行SQL Server是很是容易的,今天大概作個介紹吧。linux

啓動Microsoft SQL Server 2017容器

下面是我目前WeText案例中用於搭建基礎結構服務的docker-compose.yml文件(該文件未來還會變更,最新版本請參閱Github):git

version: "3"
services:
    mongodb:
        image: mongo
        volumes:
            - ${MONGODB_DATABASE_VOLUME}
        container_name: mongodb
        ports:
            - "27017:27017"
    rabbit:
        image: rabbitmq:3-management
        ports:
            - "5672:5672"
            - "4369:4369"
            - "5671:5671"
            - "25672:25672"
            - "15672:15672"
        container_name: rabbitmq
        hostname: my-rabbitmq
        volumes:
            - ${RABBITMQ_DATA_VOLUME}
    postgres:
        image: postgres
        ports:
            - "5432:5432"
        container_name: postgres
        volumes:
            - ${POSTGRESQL_DATA_VOLUME}

    mssql:
        image: microsoft/mssql-server-linux:2017-latest
        ports:
            - "1433:1433"
        container_name: mssql
        environment:
            - ACCEPT_EULA=Y
            - SA_PASSWORD=G1veMeP@ss

這個docker-compose文件中包含了四個服務的定義,今天咱們只關注最後一個,也就是mssql。能夠看到:github

  1. Microsoft SQL Server的Docker鏡像名爲:microsoft/mssql-server-linux,tag爲2017-latest
  2. SQL Server在容器內偵聽1433端口,也就是標準的SQL Server端口
  3. 啓動SQL Server容器須要兩個環境變量:ACCEPT_EULA=Y,表示接受最終用戶許可協議;SA_PASSWORD=G1veMeP@ss,表示設置sa用戶的密碼。這個用戶密碼要符合強密碼規範(數字、字母、大小寫,至少8個字符),以後在客戶端鏈接的時候,就須要使用這個密碼登陸服務器

固然,你能夠不使用docker-compose,而是直接使用docker run,那麼方法也是相似的,好比可使用下面的語句:sql

sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=G1veMeP@ss' \
   -p 1433:1433 --name mssql \
   -d microsoft/mssql-server-linux:2017-latest

一樣也能夠啓動SQL Server容器。在Docker中運行SQL Server時,須要注意:mongodb

  1. 主機(host machine)的內存至少須要3.5GB左右
  2. Docker中的SQL Server是開發者版本(Developer Edition),功能與企業版相同,可是僅能用於開發或者測試環境,不得用於生產環境

鏈接SQL Server 2017

官方文檔介紹使用docker exec命令,在已運行的SQL Server 2017容器中,執行sqlcmd命令進行鏈接和數據庫使用。固然,也可使用圖形化的客戶端,好比SQL Server Management Studio或者Visual Studio的Server Explorer來鏈接運行於Docker中的SQL Server 2017,方法與鏈接普通版本SQL Server的方法同樣。例如,下面是在Visual Studio的Server Explorer中鏈接Microsoft SQL Server on Linux for Docker的效果:docker

image

參考文檔

相關文章
相關標籤/搜索