背景概要:

docker desktop是在windows中直接使用docker的工具。可以可视化管理镜像容器等。众所周知docker只能在linux中运行,因此之前使用docker需要装虚拟机。win10后期支持了linux子系统wsl2。docker desktop依赖wsl运行。docker desktop安装方法网上一大把,这里不细讲。只说注意点。新版本docker desktop中的本地镜像等资源都存在wsl2中。通过win10安装的wsl2直接安装在C盘。所以C盘空间紧张的小伙伴记得安装完后导出相关的数据再复制到其他盘然后再导入。

具体可以网上搜索。

1.配置镜像仓库

docker desktop自带kubernetes但是需要拉取镜像。所以第一步配置仓库的国内镜像:

  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://cr.console.aliyun.com/"
  ]

 注意:如果是自己搭建的镜像仓库是http协议的需要添加到:

"insecure-registries": [

    "http://127.0.0.1:5000"

],

不然拉不到镜像

2.启用kubernetes

 勾选后会自动拉取镜像

和网络情况有重要关系,这里需要等待花费一点时间。

3.如果拉取完成启动失败 

重点!!很多国内环境拉取镜像可能是不完整的导致启动失败,此时可以先尝试点击右上角bug图标。

 选择clean/purge data

 

勾选3个,这个会删除docker desktop上所有镜像和容器。然后手动重启docker desktop。(有些需要重启电脑。)此时会重新拉取k8s需要的镜像并启动。

 通常这一步就可以成功了。但如果还是不成功。考虑手动拉取镜像。

GitHub - AliyunContainerService/k8s-for-docker-desktop: 为Docker Desktop for Mac/Windows开启Kubernetes和Istio。a

按照指导操作就行。

4.端口占用

同样也是高频发生的!可能与之前wsl升级wsl2有关

1)如果还是启动不起来,打开docker日志

路径:C:\Users\%user%\AppData\Local\Docker\log.txt

查看是否有异常:

 bind: An attempt was made to access a socket in a way forbidden by its access permissions.

这个异常是端口占用,k8s启动后端会使用6443端口,这个端口可能是hyper-v的系统保留动态端口,应用不能使用。 

使用命令:

netsh int ipv4 show excludedport tcp

查看动态端口保留情况: 

如果开始端口结束端口包含了应用绑定端口则需要重新设置。

第一种方法:

将动态端口调整避开要监听的端口,如:

netsh int ipv4 set dynamicport tcp start=49152 num=16384

第二种方法:

将你要监听的端口排除出动态端口

# 保留 6440~6450 这10个端口给应用程序使用

netsh int ipv4 add excludedportrange protocol=tcp startport=6440 numberofports=10

# 保留 6443 端口给应用程序使用

netsh int ipv4 add excludedportrange protocol=tcp startport=6443 numberofports=1

然后重启电脑,打开docker desktop。静待kubernetes启动 。

最后,如果遇到一些kubectl apply 的一些远程yml无法拉取,尝试在hosts中配置相关github ip

# GitHub Start
52.74.223.119 github.com
192.30.253.119 gist.github.com
54.169.195.247 api.github.com
185.199.111.153 assets-cdn.github.com
185.199.108.133 raw.githubusercontent.com
185.199.109.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
185.199.111.133 raw.githubusercontent.com
151.101.108.133 user-images.githubusercontent.com
151.101.76.133 gist.githubusercontent.com
151.101.76.133 cloud.githubusercontent.com
151.101.76.133 camo.githubusercontent.com
151.101.76.133 avatars0.githubusercontent.com
151.101.76.133 avatars1.githubusercontent.com
151.101.76.133 avatars2.githubusercontent.com
151.101.76.133 avatars3.githubusercontent.com
151.101.76.133 avatars4.githubusercontent.com
151.101.76.133 avatars5.githubusercontent.com
151.101.76.133 avatars6.githubusercontent.com
151.101.76.133 avatars7.githubusercontent.com
151.101.76.133 avatars8.githubusercontent.com
# GitHub End

Logo

开源、云原生的融合云平台

更多推荐