windows10/2016上使用docker

简介:

该文章是在一个物理主机使用windows server 2016或windows 10上使用docker非hyper-v虚拟机。

首先搭建一个容器主机。


按照微软的官方文档搭建该容器主机,步骤如下:


  1. 安装容器功能

    PS C:\> start-process powershell -verb runas

    PS C:\> install-windowsfeature containers

    PS C:\> shutdown -r -t 0

    PS C:\> get-containerhost

  2. 启用hyper-v角色

    PS C:\> install-windowsfeature hyper-v

  3. 创建虚拟交换机

    PS C:\> new-vmswitch -name "DHCP" -switchtype external(这是使用的桥接方式,还可以使用nat方式)

    PS C:\> new-vmswitch -name "virtual switch" -switchtype nat -natsubnetaddress 172.16.0.1/24

  4. 如果虚拟交换机配置的是nat类型,则需要创建nat对象。

    PS C:\> new-netnat -name containernat -internalipinterfaceaddressprefix "172.16.0.1/24"

  5. 安装操作系统镜像

    PS C:\> install-packageprovider containerprovider -force

    ps C:\> find-containerimage

    ps C:\> install-containerimage -name nanoserver

    ps C:\> install-containerimage -name windowservercore

    安装操作系统镜像的原理是使用微软提供的BITS服务,从其网站上下载一个.wim的文件然后进行转换成该容器的镜像的方式,存放的目录默认在C:\programdata\microsoft\windows\image。下载的目录在C:\Windows\winsxs\

    如果找到在哪个下载地址的话请告诉我。

    ps C:\> get-containerimage


    Name              Publisher    Version      IsOSImage

    ----              ---------    -------      ---------

    NanoServer        CN=Microsoft 10.0.10586.0 True

    WindowsServerCore CN=Microsoft 10.0.10586.0 True

  6. 然后按照该文档在windows上安装docker及docker服务。

    https://msdn.microsoft.com/zh-cn/virtualization/windowscontainers/deployment/docker_windows



容器主机和docker准备完以后就可以在该主机上运行容器了,一种方法是使用powershell运行一个容器,一种方法是使用docker运行容器。两种方法都差不多。具体的见如下命令。

PS C:\> get-containerimage

PS C:\> new-container -name tst -containerimagename windowsservercore

ps c:\> add-containernetworkadapter -containername tst

ps c:\> get-vmswitch

ps c:\> connect-containernetworkadapter -containername tst -switchname DHCP

ps c:\> $container=get-container -name tst(如果这里不定义改变量,则在使用该容器的时候powershell会提示字符串不合法的错误)

ps c:\> start-container $container

ps c:\> get-container | start-container(启动所有的容器)

ps c:\> enter-pssession -containername tst -runasadministrator(使用powershell用户名为administrator的用户进入名为tst的容器,持久性powershell会话,还可以使用一次性操作容器)

ps c:\> invoke-command -containername tst -scriptblock {new-item -itemtype directory -path C:\application} (该命令为一次性在tst容器中在C盘下创建一个application的目录。)

ps c:\> stop-container $container

ps c:\> get-container | stop-container (停止所有容器)

ps c:\> remove-container $container -force

ps c:\> get-container | remove-container -force


以上命令使用powershell创建、使用、删除容器。具体的命令使用请get-help command


由于用习惯了linux的操作,在windows上一样的喜欢使用command-line的方式。




以下是使用docker的方式创建、使用、删除容器(具体的docker方式请help)。


PS C:\> docker images

C:\> docker run --name iisbase -it windowsservercore cmd

C:\> powershell.exe Install-WindowsFeature web-server

C:\> exit

C:\> docker commit iisbase windowsservercoreiis

C:\> docker images


if (!(Get-NetFirewallRule | where {$_.Name -eq "TCP80"})) {

    New-NetFirewallRule -Name "TCP80" -DisplayName "HTTP on TCP/80" -Protocol tcp -LocalPort 80 -Action Allow -Enabled True

}


C:\> docker run --name iisdemo -it -p 80:80 windowsservercoreiis cmd


C:\> del C:\inetpub\wwwroot\iisstart.htm


PS C:\> docker run -p 80:80 windowsservercoreiis

PS C:\> docker stop tender_panini

PS C:\> docker stop $(docker ps -q)

PS C:\> docker rm prickly_pike

PS C:\> docker rm $(docker ps -a -q)

















本文转自ting2junshui51CTO博客,原文链接: http://blog.51cto.com/ting2junshui/1739751,如需转载请自行联系原作者



相关文章
|
7天前
|
Linux 虚拟化 Docker
Windows12安装Docker
Windows12安装Docker
33 2
|
4月前
|
Linux 网络安全 Docker
windows ssh连接docker 容器
windows ssh连接docker 容器
96 0
|
3月前
|
存储 虚拟化 Docker
windows系统安装docker(Hyper-V方式)
windows系统安装docker(Hyper-V方式)
207 2
|
5月前
|
开发框架 .NET Docker
.NET Core项目部署到Windows系统Docker
.NET Core项目部署到Windows系统Docker
125 2
|
6月前
|
Ubuntu Linux Docker
[笔记]Centos/Ubuntu/Windows/Docker 安装使用Aria2及Aria2基本使用
[笔记]Centos/Ubuntu/Windows/Docker 安装使用Aria2及Aria2基本使用
239 0
|
6月前
|
关系型数据库 数据库 PostgreSQL
使用 Docker 在 Windows、Mac 和 Linux 系统轻松部署 PostgreSQL 数据库
使用 Docker 在 Windows、Mac 和 Linux 系统轻松部署 PostgreSQL 数据库
184 1
|
7天前
|
Docker Windows 容器
Windows Docker Desktop 无法启动 自动退出报错信息为:Docker Desktop -Unexpected WsL error An unexpected error was e
Windows Docker Desktop 无法启动 自动退出报错信息为:Docker Desktop -Unexpected WsL error An unexpected error was e
24 0
|
4月前
|
前端开发 Docker Windows
Windows 安装 Docker Compose
Windows 安装 Docker Compose
|
6月前
|
数据可视化 uml Docker
在本地Windows 11 系统的桌面版Docker上搭建PlantUML
在本地Windows 11 系统的桌面版Docker上搭建PlantUML
78 0
|
3月前
|
Linux Docker Windows
windows10&11 启动Docker Desktop报 “Docker Desktop - Unexpected WSL error”
windows10&11 启动Docker Desktop报 “Docker Desktop - Unexpected WSL error”
176 0