Docker踩坑记录
权限和网络原因导致无法制作镜像
一个很简单docker镜像配置:

Dockerfile文件:

index.js文件:

尝试在该目录下运行命令 docker build -t hello-docker .
,报错:

提示权限不足,那么我们加一个sudo试试: sudo docker build -t hello-docker .
,报错:

可以看到即使使用sudo也是会报错的,经过一番搜索,得知在macOS上,需要修改 ~/.docker/config.json
:

再次运行 sudo docker build -t hello-docker
,报错:

这种一眼就看出是网络原因,现在我们有两种选择:1. 设置代理,2. 换源,我们依次尝试
设置代理
运行以下命令:
1 | export HTTPS_PROXY=http://127.0.0.1:7897 |
结果:

可以看到这个代理设置了跟没设置一样(((
换源
我这里使用的源是:https://mirror.ccs.tencentyun.com,是腾讯的一个源
打开docker desktop控制台,进入设置,找到Docker Engine:

加上上图中红色框中的内容,然后点击右下角的Apply & restart,重启完毕后,我们再试一次:

又是全新的错误呢(((
究竟如何解决
经过又一次的查阅,得知需要在docker的设置中添加下面的字段:

Apply & restart 后再试一次,还是不行,这里就不放报错内容了,跟上一张报错是一样的
最后实在没办法,我尝试自己手动拉取node:20-alpine镜像:
1 | docker pull node:20-alpine |

很迷惑啊,这样居然能成功,拉取到node:20-alpine镜像后我们再次运行sudo docker build -t hello-docker .
:

可以看到成功了,这个算是代替方案吧,真的很迷惑为什么代理和镜像仓库全都不管用