Windows 2016 Server上的Docker

该博客是一个由多个部分组成的系列文章的第一部分。 第一部分显示了如何将Windows Server 2016设置为VirtualBox VM 。 第二部分将展示如何在Windows 2016 VM上配置Docker。

  • 启动提升的PowerShell会话:



docker-windows-2016-22

  • 运行脚本以安装Docker:
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider
Restart-Computer -Force

这将安装PowerShell模块,启用容器功能并安装Docker。

docker-windows-2016-23

需要重新启动VM才能启用容器。 有关更多详细说明,请参考容器主机部署– Windows Server

  • 虚拟机重启。 启动PowerShell并使用docker version命令检查Docker版本:

docker-windows-2016-24

可以使用docker info命令找到有关Docker的更多详细docker info

docker-windows-2016-25

  • 使用docker run -it -p 80:80 microsoft/iis命令运行第一个Docker容器:

docker-windows-2016-26

这将下载Microsoft IIS服务器Docker映像。 这将需要一些时间,请耐心等待!

  • 下载8.9 GB映像后(一段时间后),将为您启动IIS服务器。 使用docker images命令检查映像列表,并使用docker ps命令检查正在运行的容器列表:

docker-windows-2016-27

可以使用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主页,如下所示:

docker-windows-2016-28

下一部分将展示如何在Windows Server 2016上创建自己的Docker映像。

翻译自: https://www.javacodegeeks.com/2016/10/docker-windows-2016-server.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值