10 windows 启动虚拟机报错_Windows 系统如何安装 Docker

1

docker 是基于 unix 开发的系列工具,所以在 windows 上安装 docker 非常容易出现环境不兼容的问题。

如果 windows 版本是 pro,一般是可以直接安装 docker desktop 的。

但是 windows home 版本不行。有 2 种方式解决,第一种方式是通过 docker toolbox, 第二种方式通过 wsl2。本文介绍第一种方式。

步骤 1:

下载 docker toolbox。

阿里云提供了镜像,下载会比较快,直接访问 http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 下载。

步骤 2:

检查是否开启了 windows 的虚拟化技术。

17438cafc073072a10b1cf4aa4fb01c5.png

步骤 3:

安装 docker toolbox。

步骤 4:

启动 (以管理员身份) Docker Quickstart Terminal

详细过程可以参考官方文档 Get started with Docker for Windows

当输入 docker version 出现类似这样就 OK 了。

efdc7b2caec6484fa3edad3cf5f9843c.png

2

这里说几个注意事项。

事项 1:

虚拟机报错。

运行时可能会出现 default 虚拟机不能启动的错误:

The virtual machine 'default' has terminated unexpectedly during startup

这个错误一般是 virtualbox 版本不兼容的问题,单独升级 virtualbox 软件可以解决。

1ac6c2f7a0663f8181ecf5badb3360fc.png

事项 2:

配置加速镜像。

官方源大陆访问会比较慢, 一般需要设置成国内的镜像。

镜像加速地址可以参考这些:

  • https://registry.docker-cn.com
  • http://hub-mirror.c.163.com
  • https://3laho3y3.mirror.aliyuncs.com
  • http://f1361db2.m.daocloud.io
  • https://mirror.ccs.tencentyun.com

在 docker toolbox 中配置镜像:

docker-machine ssh default 

sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=镜像加速地址 |g" /var/lib/boot2docker/profile 

exit 

docker-machine restart default

3

接下来说一下 docker toolbox 的执行流程。

当第一次启动 Docker Quickstart Terminal 的时候,docker-machine 工具会通过 virtualbox 软件安装一个带有 docker 的虚拟机。 所以执行的 docker 指令其实不是在 windows 系统上执行,而是在 virtualbox 的虚拟机上。

4a314c70219251612ff8bcac38848f6b.png

实际上,我们可以通过建立多个 VM 来虚拟出多台电脑,并在不同的电脑上运行 docker。

d0eec4babad1c273c1d168832a1e72c4.png

docker-machine 只能在 virtualbox 上安装 TinyCore-based Linux 发行版,如果你想在 windows 系统上模拟服务器系统比如 centos 或者 ubuntu, 也可以绕过 docker-machine , 使用 vagrant 安装 VM。

d0e189455b5f06c397777c7e62ec7de5.png

4

运行 container.

接下来我们用 docker 去运行 nginx 服务。 因为上文我们介绍了,实际上 docker 是运行在 VM 上的,所以这里的示例我都绕开了 docker quickstart 这个工具,而是直接使用命令行。

首先,通过 docker-machine 或者 vagrant 登录 VM

docker-machine ssh default

接下来,运行 nginx

docker container run --publish 7000:80 nginx

docker 会判断 nginx 这个 image(程序) 是否存在,如果不存在会去 docker hub 下载,之后会创建 nginx 服务的一个容器。同时,会开放 default 虚拟机的 7000 端口,并且和 nginx 容器的 80 端口绑定。

cd74fe10e960bcc5767d44c64ac199c3.png

接下来,我们可以通过在虚拟机上用 ifconfig 得到 IP 地址,然后通过在本机浏览器输入 vm_ip:port 的方式查看 nginx:

26b24b2396cfa9adc58920363da0a8a4.png
更多文章请关注公号:雨哥写 python.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值