©
本文档使用
php.cn手册 发布
Windows PowerShell所需的状态配置%28DSC%29是一种配置管理工具,它扩展了WindowsPowerShell的现有功能。DSC使用声明式语法来定义应该配置目标的状态。有关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.它可以通过以下方式克隆:
$ git clone https://github.com/anweiss/DockerClientDSC.git
DSC配置使用一组shell脚本来确定指定的Docker组件是否配置在目标节点%28s%29上。源存储库还包括一个脚本%28RunDockerClientConfig.ps1
%29,可用于建立所需的CIM会话%28s%29并执行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配置。目标节点的MOF文件
DockerClient -Hostname "myhost"
还包括了一个示例dsc配置数据文件,可以与Hostname
参数:
DockerClient -ConfigurationData .\DockerConfigData.psd1
在目标节点上启动配置应用程序进程
.\RunDockerClientConfig.ps1 -Hostname "myhost"
大RunDockerClientConfig.ps1
Script还可以解析DSC配置数据文件并针对多个节点执行配置:
.\RunDockerClientConfig.ps1 -ConfigurationData .\DockerConfigData.psd1
图像配置相当于运行:docker pull [image]
或docker rmi -f [IMAGE]
...
使用上面定义的相同步骤,执行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]
若要创建或删除容器,可以使用Container
带有一个或多个哈希表的参数。传递给此参数的哈希表%28s%29可以具有以下属性:
姓名%28规定%29
图像%28必需,除非将Remove属性设置为$true
%29
港
环境变化
链接
命令
移除
例如,使用容器的设置创建一个哈希表:
$webContainer = @{Name="web"; Image="anweiss/docker-platynem"; Port="80:80"}
然后,使用上面定义的相同步骤,执行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"
下面是一个哈希表,它包含所有可用于创建容器的属性:
$containerProps = @{Name="web"; Image="node:latest"; Port="80:80"; ` Env="PORT=80"; Link="db:db"; Command="grunt"}