我只想在Windows Server 2019上build 基于Linux的Docker
周末回家忘了带笔记本电源,电源耗尽,只能在家里的Windows Server 2019上继续工作,而当我在Windows Server 2019中用Docker Build我的Docker镜像的时候,出现如下错误:
Using default tag: latest latest: Pulling from library/node no matching manifest for unknown in the manifest list entries
我才意识到Windows Server 2019上安装的Docker是Windows容器的:
PS C:\Users\Administrator> docker version Client: Docker Engine - Enterprise Version: 18.09.4 API version: 1.39 Go version: go1.10.8 Git commit: c3516c43ef Built: 03/27/2019 18:22:15 OS/Arch: windows/amd64 Experimental: false Server: Docker Engine - Enterprise Engine: Version: 18.09.4 API version: 1.39 (minimum version 1.24) Go version: go1.10.8 Git commit: c3516c43ef Built: 03/27/2019 18:20:29 OS/Arch: windows/amd64 Experimental: false
我第一个想到要在Windows Server 2019构建基于Linux OS的Docker的方法就是安装WSL(Windows Subsystem for Linux), 然后在WSL中安装Docker。
开始行动,参考这篇文章:https://docs.microsoft.com/en-us/windows/wsl/install-on-server
首先,开启WSL:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
然后按照这篇文章下载自己喜欢的Linux 子系统:https://docs.microsoft.com/en-us/windows/wsl/install-manual
我选择的是Ubuntu 18/04,下载后解压出来,然后运行:
Rename-Item ./Ubuntu-1804.appx ./Ubuntu.zip
Expand-Archive ./Ubuntu.zip ./Ubuntu
解压出来:
直接执行ubuntu1804.exe安装ubuntu子系统,安装后进入ubuntu执行初始化工作,然后准备在WSL中安装docker:
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io sudo docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
恭喜你安装成功
期间遇到很多问题:解决方法当时没有记录下来,可以参考下面几篇文章:
https://zhuanlan.zhihu.com/p/39187620
但是还是有点问题,DNS问题,使用npm install的报错:
npm ERR! code EAI_AGAIN npm ERR! errno EAI_AGAIN npm ERR! request to https://registry-node.aliyun.com/org/1502272316663857/registry/cmgp/@cmgp%2fcommon failed, reason: getaddrinfo EAI_AGAIN registry-node.aliyun.com registry-node.aliyun.com:443 npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2020-01-04T04_22_31_732Z-debug.log The command '/bin/sh -c npm install' returned a non-zero code: 1
目前还在寻找解决方案中