先问大家一个问题,window上可以跑docker吗?当然可以,其实这句话有两层意思,第一层意思是,window上可以安装docker桌面版本,跑linux容器,本质上,是在window上面启动一个virtualbox的linux,然后在上面跑docker,毕竟runc的namespace和cgroup特性都需要内核支持,那么这就存在一个问题,如果是window的应用如何迁移到容器环境呢?
这里引入第二个概念,在window上面跑window容器。废话不多说,我们先来个hello world
可以看到成功的进入了容器内部。和linux上面docker的感觉是一致的。宿主机是2019的系统,容器里面是2018的系统,能够正常运行
既然docker 可以搞,containerd是否一样可以玩呢?
先安装并启动containerd
#下载
cmd /c curl -OL https://github.com/containerd/containerd/releases/download/v1.4.1/containerd-1.4.1-windows-amd64.tar.gz
cmd /c tar xvf .\containerd-1.4.1-windows-amd64.tar.gz
# 解压并配置
Copy-Item -Path ".\bin\" -Destination "$Env:ProgramFiles\containerd" -Recurse -Force
cd $Env:ProgramFiles\containerd\
.\containerd.exe config default | Out-File config.toml -Encoding ascii
# 启动 containerd
.\containerd.exe --register-service
Start-Service containerd
创建容器
.\ctr i pull mcr.microsoft.com/windows/nanoserver:1809
.\ctr c create mcr.microsoft.com/windows/nanoserver:1809 wx cmd /c "ping -t 127.0.0.1"
.\ctr t start -d wx
验证一下