?
This document uses PHP Chinese website manual Release
Windows PowerShell所需的狀態(tài)配置%28DSC%29是一種配置管理工具,它擴(kuò)展了WindowsPowerShell的現(xiàn)有功能。DSC使用聲明式語法來定義應(yīng)該配置目標(biāo)的狀態(tài)。有關(guān)PowerShell DSC的更多信息,請(qǐng)?jiān)L問http://tech net.microsoft.com/en-us/Library/dn249912.aspx...
要使用本指南,您將需要一個(gè)帶有PowerShell V4.0或更高版本的Windows主機(jī)。
包含的DSC配置腳本也使用官方的PPA,因此只支持Ubuntu目標(biāo)。Ubuntu目標(biāo)必須已經(jīng)安裝了Linux提供程序所需的OMIServer和PowerShell DSC。更多信息可在https://github.com/MSFTOSSMgmt/WPSDSCLinux下面列出的源存儲(chǔ)庫還包括用于Linux安裝的PowerShell DSC和init腳本以及更詳細(xì)的安裝信息。
DSC配置示例源可在以下存儲(chǔ)庫中獲得:https://github.com/anweiss/DockerClientDSC.它可以通過以下方式克?。?/p>
$ git clone https://github.com/anweiss/DockerClientDSC.git
DSC配置使用一組shell腳本來確定指定的Docker組件是否配置在目標(biāo)節(jié)點(diǎn)%28s%29上。源存儲(chǔ)庫還包括一個(gè)腳本%28RunDockerClientConfig.ps1
%29,可用于建立所需的CIM會(huì)話%28s%29并執(zhí)行Set-DscConfiguration
cmdlet
更詳細(xì)的使用信息可在https://github.com/anweiss/DockerClientDSC...
Docker安裝配置相當(dāng)于運(yùn)行:
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys\ 36A1D7869245C8950F966E92D8576A8BA88D21E9 sh -c "echo deb https://apt.dockerproject.org/repo ubuntu-trusty main\ > /etc/apt/sources.list.d/docker.list"apt-get update apt-get install docker-engine
確保將當(dāng)前工作目錄設(shè)置為DockerClientDSC
源并將DockerClient配置加載到當(dāng)前PowerShell會(huì)話中
. .\DockerClient.ps1
生成所需的DSC配置。目標(biāo)節(jié)點(diǎn)的MOF文件
DockerClient -Hostname "myhost"
還包括了一個(gè)示例dsc配置數(shù)據(jù)文件,可以與Hostname
參數(shù):
DockerClient -ConfigurationData .\DockerConfigData.psd1
在目標(biāo)節(jié)點(diǎn)上啟動(dòng)配置應(yīng)用程序進(jìn)程
.\RunDockerClientConfig.ps1 -Hostname "myhost"
大RunDockerClientConfig.ps1
Script還可以解析DSC配置數(shù)據(jù)文件并針對(duì)多個(gè)節(jié)點(diǎn)執(zhí)行配置:
.\RunDockerClientConfig.ps1 -ConfigurationData .\DockerConfigData.psd1
圖像配置相當(dāng)于運(yùn)行:docker pull [image]
或docker rmi -f [IMAGE]
...
使用上面定義的相同步驟,執(zhí)行DockerClient
帶著Image
參數(shù)并應(yīng)用配置:
DockerClient -Hostname "myhost" -Image "node".\RunDockerClientConfig.ps1 -Hostname "myhost"
還可以配置主機(jī)以獲取多個(gè)映像:
DockerClient -Hostname "myhost" -Image "node","mongo".\RunDockerClientConfig.ps1 -Hostname "myhost"
若要?jiǎng)h除圖像,請(qǐng)按以下方式使用哈希表:
DockerClient -Hostname "myhost" -Image @{Name="node"; Remove=$true}.\RunDockerClientConfig.ps1 -Hostname $hostname
容器配置等同于運(yùn)行:
docker run -d --name="[containername]" -p '[port]' -e '[env]' --link '[link]'\'[image]' '[command]'
或
docker rm -f [containername]
若要?jiǎng)?chuàng)建或刪除容器,可以使用Container
帶有一個(gè)或多個(gè)哈希表的參數(shù)。傳遞給此參數(shù)的哈希表%28s%29可以具有以下屬性:
姓名%28規(guī)定%29
圖像%28必需,除非將Remove屬性設(shè)置為$true
%29
港
環(huán)境變化
鏈接
命令
移除
例如,使用容器的設(shè)置創(chuàng)建一個(gè)哈希表:
$webContainer = @{Name="web"; Image="anweiss/docker-platynem"; Port="80:80"}
然后,使用上面定義的相同步驟,執(zhí)行DockerClient
帶著-Image
和-Container
參數(shù):
DockerClient -Hostname "myhost" -Image node -Container $webContainer.\RunDockerClientConfig.ps1 -Hostname "myhost"
現(xiàn)有集裝箱也可按以下方式移除:
$containerToRemove = @{Name="web"; Remove=$true}DockerClient -Hostname "myhost" -Container $containerToRemove.\RunDockerClientConfig.ps1 -Hostname "myhost"
下面是一個(gè)哈希表,它包含所有可用于創(chuàng)建容器的屬性:
$containerProps = @{Name="web"; Image="node:latest"; Port="80:80"; ` Env="PORT=80"; Link="db:db"; Command="grunt"}