爱填坑的喵哥——windows10下docker开启失败、下载镜像失败的坑

本文解决Win10 Docker开启失败及镜像下载问题,包括内存不足与虚拟网口配置不当导致的问题,并介绍如何正确配置Docker运行环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/************************************************************************/

/*****                       操作系统:win10 1803版                        *****/

/*****             docker版本:18.03.1-ce, build 9ee9f40           *****/

/************************************************************************/

喵哥最近开始用windows版的docker,说实话win10上的docker已经很好用了,但是还是有些小问题需要新手去留意一下,不然时间都花在docker的开启上了,喵哥走过的路,自然要竖路牌:

1.docker开启失败问题之一——开启内存不够

2.docker开启失败问题之二——虚拟网口不够(个人瞎猜的,有其他见解,欢迎提出,一起学习哈)

3.docker下载镜像失败

1.docker开启失败问题之一——开启内存不够

还原“事故现场”……

第一步,你得有个win10下安装的docker,这个网上教程很多,而且win10安装docker比其他win平台要简单很多,就不细说了。

第二步,打开docker,但是白色的小鲸鱼变成红烧的了。。。如果是内存不够的话,就在docker的“setting”里的“advanced”里修改内存的大小,默认是2048MB,把内存拖到1280MB即可,然后重启docker,就好了。


好吧,喵哥的内存比较多,所以就不拖了。

可能会有人说,我的“advanced”呢???


我只能说肤色白还是有好处的,开玩笑啦。其实是docker开启的模式问题——windows容器是没有“advanced”的设置项的,所以想解锁更多功能,请把docker转换到Linux容器模式。


所以推荐使用Linux的容器,这在安装docker时会有提醒的,不要点那个√就好了。另外这两种模式下保存的数据应该是不一样的,不要频繁的切换模式。

2.docker开启失败问题之二——虚拟网口不够

由于我现在没有这个问题,所以没有截图,所以只好从思否那复制类似的错误提示:


这一堆问题搞得喵哥完全没有头绪。出现这个错误是我从win10 1709升级到1803遇到的,而每次我退回到1709,docker又可以正常使用,所以喵哥一度把锅扔给了微软爸爸。反正是屡试屡败,屡败屡试。后来在GitHub上看到有说是在设备管理里删除所有虚拟网络,然后重启电脑,问题完美解决了。喵哥对计算机网络了解不多,猜测是因为windows的虚拟网口不够了,如果有其他见解,欢迎一起探讨学习哈。

3.docker下载镜像失败

Unable to create: 已停止该运行的命令,因为首选项变量“ErrorActionPreference”或通用参数设置为 Stop: 常规故障 
在 New-Switch、<无文件> 中: 第 131 行
在 <ScriptBlock>、<无文件> 中: 第 385 行
在 Docker.Backend.HyperV.RunScript(String action, Dictionary`2 parameters) 位置 C:gopathsrcgithub.comdockerpinatawinsrcDocker.BackendHyperV.cs:行号 177
在 Docker.Backend.ContainerEngine.Linux.Start(Settings settings, String daemonOptions) 位置 C:gopathsrcgithub.comdockerpinatawinsrcDocker.BackendContainerEngineLinux.cs:行号 123
在 Docker.Core.Pipe.NamedPipeServer.<>c__DisplayClass9_0.<Register>b__0(Object[] parameters) 位置 C:gopathsrcgithub.comdockerpinatawinsrcDocker.CorepipeNamedPipeServer.cs:行号 47
在 Docker.Core.Pipe.NamedPipeServer.RunAction(String action, Object[] parameters) 位置 C:gopathsrcgithub.comdockerpinatawinsrcDocker.CorepipeNamedPipeServer.cs:行号 145

喵哥需要在docker上用redis,所以在powershell上输入“docker pull redis”,心中充满了期待,但是事不由人愿,docker给了我这样一个回应:

latest: Pulling from library/redis
no matching manifest for windows/amd64 in the manifest list entries

这个提醒还是蛮清楚的,docker切换到Linux模式下就好了,第二次强调要用Linux容器模式。

### 解决 WindowsDocker 拉取镜像失败的方法 当遇到 `docker pull` 命令无法正常工作的情况时,可能由多种原因引起。以下是几种常见的解决方案: #### 配置网络设置 有时由于本地计算机的网络配置问题可能导致拉取镜像失败。可以尝试更改 Docker 的 DNS 设置来解决问题。 对于新版的 Docker Desktop 用户,可以通过图形界面调整这些选项: - 打开 **Docker Desktop** - 进入 **Settings** -> **Resources** -> **Network** - 将内部 Docker 主机使用的 DNS 更改为公共DNS服务器地址,例如 Google 的 8.8.8.8 或 Cloudflare 的 1.1.1.1[^3] #### 更新 Docker 版本 确保正在使用最新版本的 Docker 可能有助于修复已知错误和提高兼容性。旧版软件可能存在未修补的安全漏洞或性能缺陷,更新到稳定的新版本通常是一个好主意。 #### 清除缓存数据 如果之前有过不成功的下载操作,则残留的数据可能会干扰新的请求。清除所有挂起的操作记录可以帮助恢复正常功能。 ```bash docker system prune -af --volumes ``` 此命令将会删除所有的停止容器、悬空镜像以及未被使用的卷文件[^2]。 #### 修改 WSL 2 配置(仅限于启用WSL 2的情况下) 为了优化基于 Linux 子系统的应用程序表现,特别是内存占用方面的问题,可以在用户的 `.wslconfig` 文件中指定更合理的参数值: ```ini [wsl2] memory=4GB ; 分配给每个Linux子系统的内存量,默认单位为字节;这里设定了4G大小 processors=2 ; 分配给每个Linux子系统的CPU核心数 swap=0 ; 关闭交换分区以减少磁盘读写次数 localhostForwarding=true ; 允许访问宿主机的服务端口转发 ``` #### 使用代理加速国内环境下的镜像获取速度 在中国大陆地区,官方仓库的速度往往较慢甚至不可达。此时可考虑利用阿里云或其他服务商提供的镜像站作为替代方案。编辑位于 `%USERPROFILE%\.docker\daemon.json` 中的内容如下所示[^1]: ```json { "registry-mirrors": ["https://<your_mirror>.mirror.aliyuncs.com"] } ``` 替换 `<your_mirror>` 为你所选的具体域名前缀部分。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值