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