该博客是一个由多个部分组成的系列文章的第一部分。 第一部分显示了如何将Windows Server 2016设置为VirtualBox VM 。 第二部分将展示如何在Windows 2016 VM上配置Docker。
- 启动提升的PowerShell会话:
- 运行脚本以安装Docker:
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider
Restart-Computer -Force
这将安装PowerShell模块,启用容器功能并安装Docker。
需要重新启动VM才能启用容器。 有关更多详细说明,请参考容器主机部署– Windows Server 。
- 虚拟机重启。 启动PowerShell并使用
docker version
命令检查Docker版本:
可以使用docker info
命令找到有关Docker的更多详细docker info
:
- 使用
docker run -it -p 80:80 microsoft/iis
命令运行第一个Docker容器:
这将下载Microsoft IIS服务器Docker映像。 这将需要一些时间,请耐心等待!
- 下载8.9 GB映像后(一段时间后),将为您启动IIS服务器。 使用
docker images
命令检查映像列表,并使用docker ps
命令检查正在运行的容器列表:
可以使用docker inspect
命令找到有关容器的更多详细信息:
[
{
"Id": "c15555e4b60ec24bbad2b8834c82e14313d193e07da2ca7d3948802e36f4d828",
"Created": "2016-10-27T23:45:20.4069634Z",
"Path": "C:\\ServiceMonitor.exe",
"Args": [
"w3svc"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 4228,
"ExitCode": 0,
"Error": "",
"StartedAt": "2016-10-27T23:45:34.5990616Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:b6a44de60ef92f9eceb68effcfc5fdbd5ecb53677e8c4f1e8dcd02b0c11cb760",
"ResolvConfPath": "",
"HostnamePath": "",
"HostsPath": "",
"LogPath": "C:\\ProgramData\\docker\\containers\\c15555e4b60ec24bbad2b8834c82e14313d193e07da2ca7d3948802e36f4d828\\c15555e4b60ec24bbad2b8834c82e14313d193e07da2ca7d3948802e36f4d828-json.log",
"Name": "/cocky_mahavira",
"RestartCount": 0,
"Driver": "windowsfilter",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "default",
"PortBindings": {
"80/tcp": [
{
"HostIp": "",
"HostPort": "80"
}
]
},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"CapAdd": null,
"CapDrop": null,
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 0,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 0,
"ConsoleSize": [
50,
120
],
"Isolation": "process",
"CpuShares": 0,
"Memory": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": null,
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [],
"DiskQuota": 0,
"KernelMemory": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": -1,
"OomKillDisable": false,
"PidsLimit": 0,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0
},
"GraphDriver": {
"Name": "windowsfilter",
"Data": {
"dir": "C:\\ProgramData\\docker\\windowsfilter\\c15555e4b60ec24bbad2b8834c82e14313d193e07da2ca7d3948802e36f4d828"
}
},
"Mounts": [],
"Config": {
"Hostname": "c15555e4b60e",
"Domainname": "",
"User": "",
"AttachStdin": true,
"AttachStdout": true,
"AttachStderr": true,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": true,
"OpenStdin": true,
"StdinOnce": true,
"Env": null,
"Cmd": null,
"ArgsEscaped": true,
"Image": "microsoft/iis",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"C:\\ServiceMonitor.exe",
"w3svc"
],
"OnBuild": null,
"Labels": {}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "b23c5766990bb9373e6cbb69cb54b011f57974ed381e60c1eacb7c3c47e303b2",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"80/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "80"
}
]
},
"SandboxKey": "b23c5766990b",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {
"nat": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "9ae352610731342dde19246e759944e79af7a19077d879024a17cedca4b061c9",
"EndpointID": "198d0a52838f1e5178b3fedc154e9f18409c13f0de489e99c06faf9ed2fbedd9",
"Gateway": "",
"IPAddress": "172.26.192.89",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "00:15:5d:7e:60:60"
}
}
}
}
]
- 可以使用以下命令找到容器的确切IP地址:
docker inspect --format '{{ NetworkSettings.Networks.nat.IPAddress }}' cocky_mahavira
可以从http:// <container-ip>访问IIS主页,如下所示:
下一部分将展示如何在Windows Server 2016上创建自己的Docker映像。
翻译自: https://www.javacodegeeks.com/2016/10/docker-windows-2016-server.html