1、Windowsserver上的docker容器Windows-server-2016上的docker容器Windows server 2016上的docker容器补:1.windows server 2016 docker容器安装首先,安装 OneGet PowerShell 模块。Install-Module -Name DockerMsftProvider -Repository PSGallery Force接下来使用 OneGet 安装最新版的 DockerInstall-Package -Name docker -ProviderName DockerMsftProvider报如下错
2、误:解决办法:手动下载docker-1-12-2-cs2-ws-beta.zip(链接地址: -Name docker -ProviderName DockerMsftProvider命令即可安装完成最后重启计算机,docker即可使用(注:安装方法来源于: EnvironmentVariableTarget:Machine)在powershell中输入如下命令,将 Docker 安装为一个 Windows 服务。dockerd -register-service在powershell中输入如下命令,启动docker服务。Start-Service Docker输入如下命令,可以查看docke
3、r服务启动情况Get-service dockerDocker info2.安装基本容器映像输入如下命令,搜索可用镜像。Docker search microsoft输入如下命令,拉取docker镜像。Docker pull microsoft/nanoserver输入如下命令,可以查看当下可用镜像Docker images3.宿主主机上的目录挂载到容器中。在宿主主机中创建一个名为volume01的卷Docker volume create name volume01将volume01挂载到容器中Docker run v volume01:c:TEST it Microsoft/nanoser
4、ver powershell进入容器后在C:test目录下创建一个1108文件夹用以测试退出容器后,查看volume01中是否有1108文件夹输入如下命令,查看volume01卷所在的宿主主机位置Docker volume inspect volume01进入宿主主机的“C:ProgramDatadockervolumesvolume01_data”目录下验证Cd C:ProgramDatadockervolumesvolume01_data(注:反向验证也有的。不过在linux docker 下不需要创建卷这一步,直接(docker run v /test:/test it centos6.
5、5 /bin/bash)即可。且目前在windows docker下没有找到docker create一个自定义路径的卷)4.宿主主机与容器网络通信。使用下面命令,将microsoft/mssql-server-2016-express-windows镜像拉取到本地Docker pull microsoft/mssql-server-2016-express-windows使用下面命令,启动microsoft/mssql-server-2016-express-windows镜像docker run -d -p 1433:1433 -env sa_password=OOoo0000 -env
6、attach_dbs= microsoft/mssql-server-2016-express-windows使用如下命令,进入容器内部Docker exec it 64d1de9595d1 powershell输入如下命令,查看容器IP地址Ipconfig此时开启宿主主机的powershell,输入如下命令,检测与容器的网络连通性。telnet 172.27.225.47 1433使用与宿主主机同网段的主机,进行网络测试,ip地址用宿主主机的(提示:如果像正常使用sql server 2016,需在客户端下载安装2016SQLServerManagementStudio)可以看到也是可以连通
7、的,现在关闭容器再尝试,可以看到连接失败。(注:windows docker的网络模式和linux docker网络模式不同。Linux docker下网络模式有四种,分别是bridge,host,none,Containers。而windows docker 中只有两种:NAT和none。)5.SQL server 2016持续部署构建思路备注:1、在宿主主机上创建一个数据卷,用以存放数据库2、启动容器,并将数据库挂载到容器中3、将数据库附加到容器中4、编写监控脚本,每5秒钟探测一次容器的1433端口,如果1433端口无法连通,测关闭或删除原来的容器,自动重建容器并附加数据库PS C:UsersAdministrator docker run -d -p 1433:1433 -env sa_password=OOoo0000 -env attach_dbs= -v data:c:data -name=sql3 microsoft/mssql-server-2016-express-windowsPS C:UsersAdministrator docker exec sql3 powershell c:data1.ps1