Windows 10上使用Hyper-V虚拟机安装docker

举报
chunhan 发表于 2019/12/31 17:17:28 2019/12/31
【摘要】 使用windows 10的Hyper-V虚拟机来安装docker

在windows上使用Docker大概有三种方式:

  1. Docker desktop for windows

  2. Microsoft store app来安装linux子系统

  3. Hyper-V创建虚拟机来安装docker

以上三种方式,比较推荐使用Hyper-V的虚拟机来安装docker,使用Hyper-V来安装linux虚拟机在操作系统和设置上的坑比较少,以下使用windows 10的Hyper-V虚拟机来安装docker。

首先需要启用windows的Hyper-V管理器:

image.png

在打开Hyper-V管理器创建VM前需要启用Hyper-V相关计算服务,如:

image.png

有时启动服务或在Hyper-V管理虚拟机时会报异常,可以确认如下配置:

Windows安全中心中的:

image.png

image.png

image.png

image.png

完成如上正常打开:

image.png

image.png

可通过原生centos或其他linux iso更改安装源完成操作系统的安装:

image.png

完成linux系统的安装后可通过共享网卡的方式实现虚拟机上网,在网卡设置中设置internet共享:

image.png

通过yum完成docker的安装,docker从公网拉取镜像,可以通过设置docker的proxy:

可参考https://docs.docker.com/config/daemon/systemd/,如下:

  1. Create a systemd drop-in directory for the docker service:

$ sudo mkdir -p /etc/systemd/system/docker.service.d

   2.Create a file called /etc/systemd/system/docker.service.d/http-proxy.conf that adds the HTTP_PROXY environment variable:

[Service]Environment="HTTP_PROXY=http://proxy.example.com:80/"

Or, if you are behind an HTTPS proxy server, create a file called /etc/systemd/system/docker.service.d/https-proxy.conf that adds the HTTPS_PROXY environment variable:

[Service]Environment="HTTPS_PROXY=https://proxy.example.com:443/"

3.If you have internal Docker registries that you need to contact without proxying you can specify them via the NO_PROXY environment variable.

  1. The NO_PROXY variable specifies a string that contains comma-separated values for hosts that should be excluded from proxying. These are the options you can specify to exclude hosts:

    Config examples:

    [Service]    
    Environment="HTTP_PROXY=http://proxy.example.com:80/" "NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp"

    Or, if you are behind an HTTPS proxy server:

    [Service]    
    Environment="HTTPS_PROXY=https://proxy.example.com:443/" "NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp"
  • example.com matches example.com and foo.example.com, and

  • .example.com matches only foo.example.com

  • IP address prefix (1.2.3.4)

  • Domain name, or a special DNS label (*)

  • A domain name matches that name and all subdomains. A domain name with a leading “.” matches subdomains only. For example, given the domains foo.example.com and example.com:

  • A single asterisk (*) indicates that no proxying should be done

  • Literal port numbers are accepted by IP address prefixes (1.2.3.4:80) and domain names (foo.example.com:80)

Flush changes:

$ sudo systemctl daemon-reload

Restart Docker:

$ sudo systemctl restart docker

Verify that the configuration has been loaded:

$ systemctl show --property=Environment dockerEnvironment=HTTP_PROXY=http://proxy.example.com:80/

Or, if you are behind an HTTPS proxy server:

$ systemctl show --property=Environment dockerEnvironment=HTTPS_PROXY=https://proxy.example.com:443/

完成如上正常能从公网拉取镜像等:

image.png

在使用代理时,如果需要创建容器网络,需要避免使用的网段与proxy的网络产生冲突,会导致代理失效。


后续的虚拟机管理可以通过Hyper-V管理器来进行管理:

image.png


image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。