孫鑫巖+唐凌彥
摘要:該文首先目前開源技術中非?;鸬膁ocker技術,然后介紹了sqlserver數(shù)據(jù)庫。接著介紹如何把sqlserver部署到docker容器中,最后通過數(shù)據(jù)庫客戶端訪問部署在docker容器中的sqlserver服務。
關鍵詞:Docker;容器;數(shù)據(jù)庫
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)31-0001-02
1 Docker介紹
Docker 是dotcloud公司開源的基于LXC的容器引擎技術,采用go語言開發(fā)。官方網(wǎng)站是:https://www.docker.com/,對應的官方docker鏡像是:http://hub.docker.com/。
Docker容器是完全使用沙箱機制,不同的docker容器之間資源隔離,用戶使用docker容器感覺就像使用一個虛擬機,當時docker容器相比虛擬機更輕量級。Docker技術正在是應用軟件系統(tǒng)做到一次構建,到處移植和運行,極大地簡化了應用軟件系統(tǒng)的移植和部署成本,提高和解放了生產(chǎn)力。開發(fā)者可以把筆記本上開發(fā)、編譯測試通過的容器在生產(chǎn)環(huán)境中批量部署,不同的應用軟件系統(tǒng)通過docker容器封裝技術得到相同的移植和部署接口。
Docker體系結構如下圖:
我們稱安裝docker的機器為宿主機,安裝后宿主機上docker daemon默認啟動,我們通過docker客戶端(命令行工具)和docker daemon通信,進行docker容器的拉取、運行、停止、push。
要理解上述操作,我們需要了解Docker的3大組件:
Docker鏡像:Docker 容器運行時的只讀模板,每一個鏡像由一系列的層組成。我們通過Dockerfile來描述和build一個docker鏡像。
Docker 倉庫:Docker 倉庫存放鏡像的地方,有公共倉庫和私有倉庫。公共倉庫就是我們上述提到的http://hub.docker.com/,Docker倉庫提供了龐大的鏡像集合供使用。這些鏡像可以是自己創(chuàng)建,或者在別人的鏡像基礎上創(chuàng)建。
Docker 容器:Docker 容器是Docker鏡像的運行時,類似于進程和程序的關系。鏡像類似于程序,是一個靜態(tài)的概念,容器類似于進程,是一個動態(tài)的概念。一個Docker容器包含了所有的某個應用運行所需要的環(huán)境。Docker 容器可以運行、開始、停止、移動和刪除。
2 Sqlserver介紹
SQL Server是微軟開發(fā)的關系數(shù)據(jù)庫管理系統(tǒng),目前最新版本是2015年份推出的SQL SERVER 2015。它具有可擴展的、高性能的等優(yōu)點,兼容SQL92標準,提供了基于事務的企業(yè)級信息管理系統(tǒng)方案。
3 安裝
3.1 在windows下安裝docker
從https://get.daocloud.io/toolbox/下載最新的docker版本:
DockerToolbox-1.12.2.exe,點擊安裝,安裝后在cmd窗口運行docker則表示安裝成功,如下:
3.2 下載sqlserver
3.3 準備Docker鏡像build環(huán)境
1)建立本地目錄如:mkdir -p d:\mssql\install,拷貝SQLServer2016-x64-ENU.exe、SQLServer2016-x64-ENU.box、start.bat和configurationfile.ini到該目錄。
2)建立注冊表文件registry.reg 并拷貝到d:\mssql\install\registrykeys找到注冊表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\registry并保存為registry.reg。
3)在d:\mssql下面創(chuàng)建dockerfile如下:
5 總結
本文介紹了Docker的架構和基本原理,并介紹了windows下面搭建docker的過程,重點介紹了如何在docker環(huán)境下構建一個Sqlserver的鏡像,并基于這個鏡像如何構建Sqlserver的容器,最后我們連接到sqlserver的容器的服務進行數(shù)據(jù)庫基本的操作。通過這個例子我們可以看到,一旦我們構建好一個應用的鏡像,其他人來使用的時候?qū)浅:唵魏头奖恪?